jQuery,在每次循环中向数组添加值

5
我有一个 jQuery 应用程序,用户可以从输入字段向列表中添加项目。 当您提交表单时,我希望将所有项目放入数组中,以便稍后使用 php 进行操作。这样做是否正确?
jQuery:
$("#form").submit(function(){
   var items = [];
   $("#items li").each(function(n){
      items[n] = $(this).html();
   });
   $.post(
      "process.php", 
      {items: items}, 
      function(data){
          $("#result").html(data);
      });
});

PHP:

$items = $_POST["items"];
foreach($items as $item){
    //Something here
}
1个回答

13

这个想法是正确的。不过现在不是很清楚的是,你的示例代码现在填充了items,但是submit处理程序当然会在将来的某个时间被调用。在那时,列表项可能已经发生了变化。

如果是这样的话,你需要将“打包条目”的代码移到submit处理程序中,例如:

$("#form").submit(function(){
    var items = [];
    $("#items li").each(function(n){
        items[n] = $(this).html();
    });

   $.post(
      "process.php", 
      {items: items}, 
      function(data){
          $("#result").html(data);
      });
});

是的!我犯了一个错误,实际上我在原始代码中将其放在提交函数内部。现在已经更正了。我只是想知道这是否是处理它的最有效方法。我对jquery和php还不太熟悉。 - elclanrs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接