我有一个可由用户编辑的表单。进行更改时,我只希望更新这些更改。一名工作人员在整个页面加载之前按下“保存”,这意味着脚本将表单字段视为空,因此将字段替换为空字段。
目前的代码是:
$res= mysql_query ("UPDATE table SET site='$site', the1='$the1' WHERE id='$id'");
感谢这里的帮助.....
答案 0 :(得分:0)
您需要编写javascript脚本来检查数据更改并仅发送更改的数据。例如,您可以将以前的数据保存在data-prev-value属性中。
<input type="text" name="my_field" id="field_id" value="old_value" data-prev-value="old_value">
在提交时,您进行比较
$('#field_id').val() != $('#field_id').attr('data-prev-value')
如果它们不相等则将数据添加到数组并将其发送到服务器。
答案 1 :(得分:0)
这是一个建议:
$res= mysqli_query("SELECT * from table where id ='$id'");
将结果提取到数组。 选择该数据后,您需要将它们与POST数据进行比较 如果您的数据库获取数据且您发布的数据不同,那么您将设置新值。
if($_POST['name'] == $res['name']){
$name = $res['name'];
}
else{
$name = $_POST['name'];
}
答案 2 :(得分:0)
另一种解决方案是将所有字段的值设置为数据库中当前值的值。这样,他们知道当前的价值是什么,并且更容易让他们知道要改变什么,并且在提交表单时,它只是重新提交表单中的信息,无论它是否被更改。
例如:
<input type="text" name="firstname" value="<?php echo $row['firstname']; ?>" required>
提交表单时,它将保留当前存在的相同数据,或者如果在输入字段中更改了值,则更新它