将html表的行分别发布到php

时间:2012-02-14 05:10:41

标签: php jquery

我正在尝试将内容存储在表#itemsTable中的tr中,在数组celValues中并将其发布到php并重复它(发布下一个tr直到最后一个tr)。 这是代码:

$('#save').click(function(){
    //alert("hi");
    var celValues= new Array();
    $('#itemsTable tr').each(function() {
           celValues[0] = $('td:nth-child(2)').find('input').val();
           celValues[1] = $('td:nth-child(3)').find('input').val();
           celValues[2] = $('td:nth-child(4)').find('input').val();
           celValues[3] = $('td:nth-child(5)').find('input').val();
           celValues[4] = $('td:nth-child(6)').find('input').val();

           $.post("test.php", {celvalues: celValues},function(data){

                 document.write(data);

           });

    }); 

});

test.php的:

<?php
  $i=0;
  $arr= array();
  $arr = $_POST['celvalues'];
  foreach($arr as $val)
         {
             echo " " .$arr[$i];
             $i++; 
         }
?> 

问题是它重复第一行而不是发布所有tr的内容。

输出3行,内容不同。但第一行重复3次:

1000网站设计1 100.5 100.5 1000网站设计1100.5100.5 1000网站设计1 100.5 100.5

2 个答案:

答案 0 :(得分:2)

$('#save').click(function(){  
           $.post("test.php", {form: $("#yourFromID").serialize()},function(data){
                 document.write(data);
           });   
});

在test.php中

<?php
  $i=0;
  $arr= array();
  $arr = $_POST['form'];
  foreach($arr as $val)
         {
             echo " " .$arr[$i];
             $i++; 
         }
?> 

在回复您的评论时,DEMO序列化表单将包含所有输入字段的值

答案 1 :(得分:1)

你的代码似乎没有一点用于迭代trs,因为你没有使用它们

也许你的意思是

 $('#itemsTable tr').each(function(index, element) {
           celValues[0] = $(element).find('td:nth-child(2)').find('input').val();
           celValues[1] = $(element).find('td:nth-child(3)').find('input').val();

....