Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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 通过html表单发送和接收未知数量复选框的状态_Php_Html_Mysql_Checkbox - Fatal编程技术网

Php 通过html表单发送和接收未知数量复选框的状态

Php 通过html表单发送和接收未知数量复选框的状态,php,html,mysql,checkbox,Php,Html,Mysql,Checkbox,我有一个MySql表,我希望能够通过HTML表单进行修改。MySql表的列如下所示: id (int) | name (text) | option1 (boolean) | option2 (boolean) 字段选项的数量将随着时间的推移而增加,并且不是固定的,但始终包含布尔数据(0或1)。行数也不是固定的 我想用html表单修改该表,该表单如下所示: id (int) | name (text) | option1 (boolean) | option2 (boolean) 名称

我有一个MySql表,我希望能够通过HTML表单进行修改。MySql表的列如下所示:

id (int) | name (text) | option1 (boolean) | option2 (boolean)
字段
选项的数量将随着时间的推移而增加,并且不是固定的,但始终包含布尔数据(0或1)。行数也不是固定的

我想用html表单修改该表,该表单如下所示:

id (int) | name (text) | option1 (boolean) | option2 (boolean)

名称
选择1
选择2
丽丽
雷神
弗雷德
更新

您可以在php后端中使用
name=“thor[]”或
name=“lili[]”对复选框进行分组,您可以通过
$\u请求['thor']
检索它。记住它是一个数组。因此,您可以通过
foreach($\u REQUEST['thor']as$thor){}
通过
if($thor)
检查值来循环它。解决方案是添加一点Javascript,它将捕获所有字段名,并在提交表单之前将它们分配给隐藏字段的值。这将为您提供服务器端处理所需的所有信息。这是一个工作示例

test.php

test.php
$(文档).ready(函数(){
$('form')。提交(函数(){
var元素=$(此);
变量名称=[];
元素.find('input[type=checkbox]')。每个(函数(i,o){
名称[names.length]=$(o.attr('name');
});
var value=names.join();
var hidden=$('').attr('type','hidden').attr('name','names').attr('value',value);
元素。追加(隐藏);
});
});

尝试对整个“lili”组使用
name=“lili[]”
,对所有其他组使用相同的方法。服务器端您将获得一个名为“lili”(
$\u POST['lili']
)的列表,其中包含真/假值。我使用html按钮提交表单,您确定吗?我不会只得到“真实”值吗?因为只有实际选中的复选框才会发送数据?是的,没错。您还需要在复选框上设置
value=“1/2/3/…”
。然后你会得到一个“id”列表,而不仅仅是
true
值,这样你就可以识别它们。实际上,这里已经有了答案,我不能直接访问$\u请求['thor'],因为我不知道有多少行。我需要一个变量才能知道这一点。谢谢你的建议。我还将有一个带有行名称的数组。如何呈现这个html?当我生成html时,我可以访问数据库。我可以看到列和行的数量。当我收到表单时,我不知道是否添加了新行,因此我必须只修改生成html表单时可见的表部分。我对php/mysql非常陌生,如果您认为我遗漏了一些明显的东西,很可能就是这样;)