我对网络开发有点新意,这是一个问题(完全难以理解我)我觉得有一个简单的解决方案,所以我不会在丛林中试图弄清楚自己。我还将关注最重要的部分。
我有一些PHP代码,每行输出一个表格,一个表格和一个复选框。每个复选框都如下所示:
<input type="checkbox" name="data_id" value="1">
<input type="checkbox" name="data_id" value="2">
<input type="checkbox" name="data_id" value="3">
以及提交按钮:
<input type='submit' name='Submit' value='Submit'/>
标准表单设置,没什么特别的。
我想在数组中获取已检查的项目,但是当我使用$ _POST从表单中检索数据时:
if($_POST['data_id'])
{
var_dump($_POST['data_id']); //returns string
print_r($_POST['data_id']); //shows only one checkbox value
};
我究竟错误地认为变量没有返回数组?
答案 0 :(得分:1)
PHP的表单到数组语法在元素名称中需要[]
:
<input type="checkbox" name="data_id[]" value="1">
^^
答案 1 :(得分:1)
当PHP将数据解析为$_POST/GET/REQUEST
时,如果字段名称以[]
或[some_index]
结尾,则它仅将数据显示为数组(否则它将丢弃除一个值之外的所有值)。
重命名字段:
<input type="checkbox" name="data_id[]" value="1">
<input type="checkbox" name="data_id[]" value="2">
<input type="checkbox" name="data_id[]" value="3">
...或者获取the raw post data并自己进行游行。 (我不推荐后一种方法)。
答案 2 :(得分:0)
尝试
<input type="checkbox" name="data_id[]" value="1">
<input type="checkbox" name="data_id[]" value="2">
<input type="checkbox" name="data_id[]" value="3">