为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
扬帆大鱼 2021-05-03 21:25:39
因此,我将一个对象数组附加到,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 );

是绝对有效的代码(尽管我不知道为什么除非有打字错误,否则您可能会需要它)。


查看完整回答
反对 回复 2021-05-14
  • 1 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信