我试图找到一种方法从多个复选框中获取值而不将它们命名为数组。 即我希望为此获得同名的价值。
<input type="checkbox" name="name" >
<input type="checkbox" name="name" >
<input type="checkbox" name="name" >
<input type="checkbox" name="name" >
对此感到沮丧。
<input type="checkbox" name="name[]" >
<input type="checkbox" name="name[]" >
<input type="checkbox" name="name[]" >
<input type="checkbox" name="name[]" >
我知道这可以在CNET正在使用它时完成。
我认为我必须通过类似的方式将此名称值转换为服务器端的数组。
$search= ($_GET['name']);
$array = array();
$array[] = $search;
$a= $arrry;
echo "$a";
这肯定不起作用。
有人能告诉我怎么做。
感谢。
答案 0 :(得分:1)
当然,如果没有[]
属性中的name
,则无法在PHP中实现。但是,如果要为所有复选框保留相同的名称name
,则必须使用javascript / jquery获取所选复选框的值。然后将逗号分隔的值字符串发送到您的php页面。
// This is how you will get the values of selected checkboxes
var csv = '';
$('input:checkbox:checked').each(function (i) {
csv+= this.value + ',';
});
alert(csv); // alerts 1,2,3,4,
答案 1 :(得分:1)
您可以跟踪 onSubmit 事件。
当它被触发时(对于托管输入的表单),将每个输入的名称更改为唯一的名称(例如name-1,name-2)或仅名称[]。
您将获得服务器端的内容将很容易处理。
答案 2 :(得分:1)
您需要处理QUERY_STRING(或$ HTTP_RAW_POST_DATA)而不是访问$ _GET(或$ _POST)
示例(您需要对其进行优化,因为您无法信任数据字符串的正确格式):
$__POST=array();
$__GET=array();
foreach(array('POST'=>file_get_contents("php://input"),
'GET'=>$_SERVER['QUERY_STRING']) as $k=>$v)
{
$vv=explode('&',$v);
foreach($vv as $value)
{
parse_str($value,$var);
if(!isset(${'__'.$k}[key($var)]))
{
${'__'.$k}[key($var)]=array(reset($var));
}
else
{
${'__'.$k}[key($var)][]=reset($var);
}
}
}
print_r(array($__GET,$__POST));
答案 3 :(得分:-1)
不可能。
如果您设置相同的名称(通常是无效的标记TOO),则只会检索最后检查的值。
答案 4 :(得分:-1)
$ _GET ['name']是数组,所以如果使用想要引用其中的值,你可以使用
$_GET['name'][0] // return the first value
或者如果您想将其转换为字符串
$getValue = implode(',',$_GET['name']); // return "value1,value2,value3,value4,value5"
将以字符串格式
获取值