我想通过POST方法将输入和复选框的值发送到php页面以更新myql数据库表,问题是我无法接收未选中的复选框,请查看下面的代码:
index.html:
<form id='form1' method='post' action='update.php'>
<input type='hidden' name='id[]' value='1'>
<input type='text' name='firstName[]' value='John'>
<input type='checkbox' name="married[]" value='1' checked>
<br/>
<input type='hidden' name='id[]' value='2'>
<input type='text' name='firstName[]' value='Linda'>
<input type='checkbox' name="married[]" value='1'>
<br/>
<input type='hidden' name='id[]' value='3'>
<input type='text' name='firstName[]' value='Mercedes'>
<input type='checkbox' name="married[]" value='1' checked>
<br/>
<input type='button' name='submit' value='update'>
</form>
update.php
<?php
print_r($_POST);
?>
$ _ POST的内容为:
Array
(
[id] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[firstName] => Array
(
[0] => 'John'
[1] => 'Linda'
[2] => 'Mercedes'
)
[married] => Array
(
[0] => 1
[1] => 1
)
就像您看到“已婚”字段仅在选中复选框时一样,这意味着琳达将被忽略,而奔驰将获得梅赛德斯的值1(已婚)。
我该如何解决?
答案 0 :(得分:1)
快速的解决方案是为字段提供明确的索引:
<input type='hidden' name='id[0]' value='1'>
<input type='text' name='firstName[0]' value='John'>
<input type='checkbox' name="married[0]" value='1' checked>
…,然后1
代表下一批,2
代表下一批,依此类推。
但是,您可能希望通过同时获取所有三个相关字段来处理结果数据。与其将数据放在三个不同的数组中,不如将它们放在关联数组的数组中:
<input type='hidden' name='person[0][id]' value='1'>
<input type='text' name='person[0][firstName]' value='John'>
<input type='checkbox' name="person[0][married]" value='1' checked>
另一种方法是为复选框赋予唯一的值(例如,匹配id[]
输入),然后使用该值代替数组中的位置。上面的解决方案可能会更容易。
答案 1 :(得分:0)
这是未选中该复选框的正常行为。
@Scheduled(cron = "30 30 3 * * *")
@TryLock(name = "jobLock", owner = SERVER_NAME, lockFor = THREE_MINUTES)
public void runJobsOnce() {
List<Job> jobs = jobService.getJobs();
for(Job job: jobs){
runJob(job);
}
}
将输出以下内容
<form method="post" action="/index.php" enctype="multipart/form-data">
<input type="hidden" name="id[1]" value="1">
<input type='text' name='firstName[1]' value='John'>
<input type='checkbox' name="married[1]" value="Y" >
<br/>
<input type="hidden" name="id[2]" value="2">
<input type='text' name='firstName[2]' value='Linda'>
<input type='checkbox' name="married[2]" value="Y" checked>
<br/>
<input type='hidden' name='id[3]' value='3'>
<input type='text' name='firstName[3]' value='Mercedes'>
<input type='checkbox' name="married[3]" value="Y" >
<br/>
<input type='submit' name='submit' value='update'>
</form>
但是如果您希望已婚数组用Y或N填充,则可以尝试此操作。
Array
(
[id] => Array
(
[1] => 1
[2] => 2
[3] => 3
)
[firstName] => Array
(
[1] => John
[2] => Linda
[3] => Mercedes
)
[married] => Array
(
[2] => Y
)
[submit] => update
)