如何将复选框数组从FormData传递到php
在FormData的情况下,复选框数组不能通过ajax传递给php。在未使用FormData的情况下,以下脚本工作正常。所以我假设问题是在添加FormData或从中传递时出现的。它返回为foreach()提供的如何将复选框数组从FormData传递到php,php,jquery,ajax,checkbox,form-data,Php,Jquery,Ajax,Checkbox,Form Data,在FormData的情况下,复选框数组不能通过ajax传递给php。在未使用FormData的情况下,以下脚本工作正常。所以我假设问题是在添加FormData或从中传递时出现的。它返回为foreach()提供的无效参数。 复选框不是表单元素的一部分,因此 <input type="checkbox" id="menu" name="menu[]" value="1"> <input type="checkbox" id="menu" name="menu[]" valu
无效参数。
复选框不是表单元素的一部分,因此
<input type="checkbox" id="menu" name="menu[]" value="1">
<input type="checkbox" id="menu" name="menu[]" value="2">
<input type="checkbox" id="menu" name="menu[]" value="3">
<form id="form">
...........
</form>
PHP
foreach ($_POST["navid"] AS $key => $item){
$query1 =$con->prepare("INSERT INTO menu(cid, title, en_title) VALUES (:navid, :menuin, :menueng)");
$query1->bindParam(':menunin',$_POST["menunin"][$key]);
$query1->bindParam(':menueng',$_POST["menueng"][$key]);
$query1->bindParam(':navid',$item);
$query1->execute();
echo 'Menu has inserted';
}
php代码中的“是”问题: 您正在传递逗号分隔的值,因此首先分解并使用
$data = explode("," ,$_POST["navid"]);
foreach ($data AS $key => $item){
$query1 =$con->prepare("INSERT INTO menu(cid, title, en_title) VALUES (:navid, :menuin, :menueng)");
$query1->bindParam(':menunin',$_POST["menunin"][$key]);
$query1->bindParam(':menueng',$_POST["menueng"][$key]);
$query1->bindParam(':navid',$item);
$query1->execute();
echo 'Menu has inserted';
}
你的代码是完美的。工作很好。用小提琴看。请参见网络选项卡中的问题,但您不应该只准备一次,而不是在循环中使用
prepare()
。@bhumisah,但它返回了从php为foreach()提供的无效参数。请看php代码,可以吗?做一个print\r($\u POST['navid'])
数组似乎无效hanks,分解后,foreach子句工作,但生成以下错误在$query1->bindParam(':menunin',$\u POST[“menunin”][$key])处只能通过引用传递变量
;我尝试了很多,但为什么会出现这个错误?在变量中使用$_POST[“menunin”][$key]和$_POST[“menueng”][$key],并将变量传递给bindparam值
$data = explode("," ,$_POST["navid"]);
foreach ($data AS $key => $item){
$query1 =$con->prepare("INSERT INTO menu(cid, title, en_title) VALUES (:navid, :menuin, :menueng)");
$query1->bindParam(':menunin',$_POST["menunin"][$key]);
$query1->bindParam(':menueng',$_POST["menueng"][$key]);
$query1->bindParam(':navid',$item);
$query1->execute();
echo 'Menu has inserted';
}