因此,我将一个对象数组附加到,FormData并发送带有ajax后期处理请求的表单。在我的php页面上,我可以正常访问所有表单元素(使用常规$_POST['field_name']),但是当我尝试访问附加的数组元素时,出现了一些问题。基本上,如果我var_dump将该元素(称为$_POST['dynamic_form'])看到2的数组(这是正确的),但是如果我尝试循环该数组并回显值,则仅回显该数组的最后一个元素。 for (var i = 0; i < form_elements.length; i++) { formData.append('dynamic_form[]', JSON.stringify(form_elements[i])); } //THIS IS MY AJAX REQUEST $.ajax({ type: 'POST', url:'myurl', data:formData, processData: false, contentType:false, success: function(msg){ console.log(msg); alert("form saved"); }, error: function(){ alert("request failed"); } });//fine ajax//HERE MY PHP $dynamic_form = $_POST['dynamic_form']; var_dump($dynamic_form);foreach( $dynamic_form as $form ); {echo $form;} var_dump控制台中的结果是正确的:array(2){[0] =>字符串(59)“ {” type“:” text“,” name“:”“,” value“:” 2“,” label“:” disponibile“}” [1 ] =>字符串(55)“ {” type“:” textarea“,” name“:”“,” value“:” 1“,” label“:” asd“}”}但是循环echo内部foreach仅显示数组的最后一个元素:{“ type”:“ textarea”,“ name”:“”,“ value”:“ 1”,“ label”:“ asd”}is_array($dynamic_form) 返回true(正确)count($dynamic_form) 返回2(正确)我尝试了一个for循环而不是一个,foreach但是我仍然有问题..我在做什么错?
1 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
尽管应该将其作为一种类型关闭,但我会解释
foreach( $dynamic_form as $form ); {echo $form;}
被执行为
foreach( $dynamic_form as $form ) {
// do nothing
}
// echoes last value assigned to `$form` in loop.
{echo $form;}
是的,
foreach( $dynamic_form as $form );
是绝对有效的代码(尽管我不知道为什么除非有打字错误,否则您可能会需要它)。
- 1 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消