Var_dump在数组中显示2个元素,但是foreach仅显示最后一个元素

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


扬帆大鱼
浏览 146回答 1
1回答

料青山看我应如是

尽管应该将其作为一种类型关闭,但我会解释foreach( $dynamic_form as $form ); {echo $form;}&nbsp;被执行为foreach( $dynamic_form as $form ) {&nbsp; &nbsp; // do nothing}&nbsp;// echoes last value assigned to `$form` in loop.{echo $form;}&nbsp;是的,foreach( $dynamic_form as $form );是绝对有效的代码(尽管我不知道为什么除非有打字错误,否则您可能会需要它)。
打开App,查看更多内容
随时随地看视频慕课网APP