Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发布唯一的修改输入字段php_Php_Html_Mysql - Fatal编程技术网

发布唯一的修改输入字段php

发布唯一的修改输入字段php,php,html,mysql,Php,Html,Mysql,这里我有10个输入字段。然后,当用户单击submit按钮时,我希望将已修改的唯一输入字段发送到数据库并更新,而不是将所有输入字段发送到数据库 我怎样才能做到呢 如果需要保存用户触摸的字段,请参阅第一个变体。但缺点是,如果用户将字段“abc”更改为“xyz”,然后将其更改为“abc”,则该字段将被标记为已更改。如果这不是您想要的,请参阅下一个变体 (一) 修改字段时,可以在字段中使用onchange()事件设置变量。然后使用input hidden字段将这些变量发送到服务器。像这样: <in

这里我有10个输入字段。然后,当用户单击submit按钮时,我希望将已修改的唯一输入字段发送到数据库并更新,而不是将所有输入字段发送到数据库


我怎样才能做到呢

如果需要保存用户触摸的字段,请参阅第一个变体。但缺点是,如果用户将字段“abc”更改为“xyz”,然后将其更改为“abc”,则该字段将被标记为已更改。如果这不是您想要的,请参阅下一个变体

(一)

修改字段时,可以在字段中使用
onchange()
事件设置变量。然后使用
input hidden
字段将这些变量发送到服务器。像这样:

<input type='text' name='input1' onchange="getElementsByName('input1changed')[0].value = 1;">
<input type='text' name='input2' onchange="getElementsByName('input2changed')[0].value = 1;">

<input type='hidden' name='input1changed' value=0>
<input type='hidden' name='input2changed' value=0>
(二)


您可以在php中检查输入是否已设置,并相应地编写查询

if(isset($_POST['name'])){
<!-- query -->
}
if(isset($\u POST['name'])){
}

您可以比较这两个阵列。

第一个是您在网站上加载的数据,第二个是
$\U POST
数组。

您可以使用有什么区别?任何示例?因为我有点新。您还应该添加后端验证。如果用户不使用javascript怎么办?(或者它是一个机器人)第二个变体不使用JavaScript,可能是最好的选择。这很好。这似乎有点不必要。如果没有隐藏的值,那么就没有要发布的内容,因此没有要更新的内容@您的意思是,当新旧值没有差异时,应该禁用提交吗?这是错误的。OP只想更新已更改的数据,但这不起作用是的,他可以检查这些数据是否已设置并编写相应的升级查询,然后您还应将其添加为答案:)@DarkBee其已在答案中:P代码正上方
<input type='hidden' name='input1old' value='sometext1'>
<input type='text'   name='input1'    value='sometext1'>

<input type='hidden' name='input2old' value='sometext2'>
<input type='text'   name='input1'    value='sometext2'>
if ($_POST['input1old'] != $_POST['input1'])
    store $_POST['input1']

if ($_POST['input2old'] != $_POST['input2'])
    store $_POST['input2']
if(isset($_POST['name'])){
<!-- query -->
}