如何遍历数组中的附加输入

时间:2019-07-13 15:55:52

标签: php arrays json loops append

我正在通过API提交附加的输入。每次的项目数量都不相同。当我提交表单时,输入已成功提交并返回了一个对象,但仅提交了最后附加的输入。如何在显示的数组内运行循环,或者在这里运行哪种循环语法,以便为每个附加输入提交新项?谢谢您的考虑。

<script>
$(document).ready(function(){
    $("#new").click(function(){
        $("table").append("<tr><td><input type= 'text' name = 'item[]'</td> </tr>");
    });
});
</script>

<?php 

在带有输入名称=“ item []”我的PHP的表单/表格之后:

if (isset($_POST['submit']))
{
   $size = sizeof($_POST['item']);
   for ($i = 0; $i < $size; $i++)  
   {
      $product = $_POST['item'][$i];
   }
   $fields = array(
      'customer' => 992058,
      'items' => [
                    [
                        'name' => $product,
                    ]
                 ]
   );

// HERE IS A CURL CALL that POSTS $fields AND RETURNS JSON
?>

我想返回的JSON可能类似于

"items":[{"name":"product1"}][{"name":"product2"}];

而不是我得到的是什么

"items":[{"name":"product2"}]

1 个答案:

答案 0 :(得分:1)

这是您需要的:

if (isset($_POST['submit']))
    {

        $size = sizeof($_POST['item']);
        $products = [];

        for ($i = 1; $i < $size; $i++)  

            {

                $products[]['name'] = $_POST['item'][$i];
            }

            $fields = array(

                        'customer' => 992058,


                        'items' => $products
                            );

代码{var} $product在循环中仅获得最后一个插入的问题,您需要在循环内创建一个数组。