函数只保存并打印数组中的一个值。如何解决?

Posted

技术标签:

【中文标题】函数只保存并打印数组中的一个值。如何解决?【英文标题】:Function saves and prints only one value from array. how it can be fixed? 【发布时间】:2017-02-04 12:45:36 【问题描述】:

我有一个功能,可以让我将丢弃的项目保存在表单内的循环中。这是sample,有两个进程。我想要做的是在提交表单后在下一页打印保存的值。

因此,主要思想是,在第一个表单上选择进程数后,用户继续进入第二个表单,在那里他可以为循环中的每一行删除项目。然后他可以通过按保存按钮提交它,系统应该打印每个进程的保存值。 我找到了一种方法来打破每个进程的数组使用这个:

var LISTOBJ = 
    saveList: function() 
        $(".proc").each(function() 
          var listCSV = [];
          $(this).find("li").each(function()
              listCSV.push($(this).text());
          );
          $("#output").append("<p>"+listCSV.join(", ")+"</p>");
          //$(".hiddenListInput").val(listCSV);
              console.debug(listCSV);
        );
    

它工作正常,它打印每个进程的保存值列表,但是当我使用$(".hiddenListInput").val(listCSV); 提交表单后尝试在新页面上打印它时,它只显示最后保存的值。 这是我的表格:

<form class="formcss" method="POST" action="test2.php">
<?php 
    $len=2;
    for($y=0;$y<$len;$y++)
    
?>  
    <div class='proc'>
     <label>Process:</label>
      <span> </span>
      <br />
      <div class="leader">
        <label>Leader:</label>
        <div class="ui-widget-content">
          <div class="projLeader">
            <ol>
              <li class="placeholder" name="leader[]"></li>
              <input type="hidden" name="leader[]" class="hiddenListInput" />
            </ol>
          </div>
        </div>
      </div>
    </div>


<?php
                       
?>  
<div class="row">
      <input type="submit" id="savebutton" style="margin-top:25px;" name="submit" class="button" value="Save" onclick="userSubmitted = true;" />
</div>
    <div id="output"></div>
</form>

和 test2.php 我要打印保存的数组:

    $procleader=$_POST['leader'];
    print_r ($procleader);

【问题讨论】:

【参考方案1】:

好的,我在函数中添加了隐藏输入,它帮助了我。这是我所做的:

 var LISTOBJ = 
    saveList: function() 
        $(".proc").each(function() 
          var listCSV = [];
          $(this).find("li").each(function()
              listCSV.push($(this).text());
          );
          var values = '"'+listCSV.join('","')+'"';
          $(".procChecker").append("<input type='hidden' name='prodstuff[]' value='+values+' />");
          $("#output").append("<p>"+values+"</p>");
              console.debug(listCSV);
        );
    

还有fiddle

【讨论】:

以上是关于函数只保存并打印数组中的一个值。如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

我的 Json 数组只返回最后一个数组。如何解决?

将所有数据保存在数组中,过滤掉重复的数据,比较数组之间的数据并删除匹配的数据

如何在 Python3 中向调用函数返回更多值并显示结果,目前它只打印第一个值而不增加? [复制]

使用 swift 将数组保存和检索到用户默认值

如何返回一个 char 数组并在 main 中打印它?

在 Javascript 中捕获 Promise.all() 的解决方案