让我们说我在页面上有一些(很多很多)文本字段...然后我在其中一个中输入一个新值,然后单击一个按钮......我怎样才能更新数据库新价值?或者,如果它更容易......我如何将所有这些文本字段更新到数据库?
谢谢:)
答案 0 :(得分:0)
答案 1 :(得分:0)
<?php
$sql = "UPDATE table_name SET";
foreach($_POST as $key=>$value){
if($key != 'submit'){
$sql .= " " . $key . " = '" . $value . "'";
}
}
$sql = " WHERE ......";
?>
这将为您生成sql语句。您只需添加安全性然后执行即可。
答案 2 :(得分:0)
更新所有内容:
您可以像这样组织输入(1,2,3,4 - 数据库中的记录ID):
<input type="text" name="info[1]" value="blabla">
<input type="text" name="info[2]" value="blabla">
<input type="text" name="info[3]" value="blabla">
<input type="text" name="info[4]" value="blabla">
<!-- ... -->
然后,在PHP脚本中:
<?php
foreach($_POST['info'] as $id=>$data){
mysql_query("UPDATE table SET data = '".mysql_escape_string($data)."' WHERE id = ".intval($id));
}
?>
这样每个记录都会有一个UPDATE语句
仅更新已更改的内容:
您可以使用javascript的onChange()事件来查看更改了哪些字段,并仅提交这些字段。请注意,如果用户禁用了javascript,他就永远无法更改任何记录。
答案 3 :(得分:0)
识别文本字段值:每个文本字段都应具有“名称”属性:
<input type="text" name="firstName" value="please enter your first name"/>
您可以使用$ _POST [“foo”]访问文本字段“foo”的值 要知道字段是否已更改,您必须将其与默认值进行比较。
if($_POST["firstName"]!="please enter your first name"){
/*do databse update*/
}
数据库更新的准确程度取决于您的应用程序。
答案 4 :(得分:0)
正如我所看到的,它有两种方法
1 - 单击保存按钮后,将所有值收集到数组(使用javascrip)并将该数组(以逗号分隔的列表或其他内容)传递给服务器。在事务块内部,您从表中删除所有现有值并插入新值。
2 - 但如果您有许多文本值,请使用javascript来识别更改的文本框。
简单的程序就是,
选择文字字段
将其值赋予变量
当用户对文本进行更改时 字段总是比较 原始值
如果值已更改,请标记该文本 框
当用户点击“保存”时,只获取 更改了值字段
欢呼声
sameera
答案 5 :(得分:0)
你可以使用javascript / jquery完成所有这些:
<div id="inputs">
<input type="text" id="in1" />
<input type="text" id="in2" />
<input type="text" id="in3" />
...
</div>
$(function() {
$('#inputs input').each(function() {
$.ajax({
type: 'post',
url: 'your script url'
data: { input : $(this).val(), id : $(this).attr('id') },
success: function(result) {
//do whatever you want with result
}
});
});
});
我没有测试过这个,但我相信这会有效。如果您有使用javascript / jquery的经验,它可以很容易地根据填写的字段更新数据库。如果任何字段为空,您可以在客户端(javascript)进行测试。
忘了添加:PHP方:
function somescript() {
if (!isset($_POST['input']) || ! isset($_POST['id']) {
//do something to handle post not being set
}
$in = sanitize($_POST['input']);
$id = sanitize($_POST['id']);
//sanitize is a function that you should write to clean the user input
//have a query and pass in the $in and $id
//id can be used in your where statement
}