因此,我将一个对象数组附加到,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
但是我仍然有问题..我在做什么错?
料青山看我应如是