2010-11-04 66 views
0

我想从表中取值,并将它们放入一个字符串,并将它们发送到一个PHP页面登录到数据库,但会有多行需要插入,所以我需要将值分成多个字符串发送,如果这使得(任何)感觉?为每个jQuery循环分裂为多个字符串为PHP解析

这是我的jQuery:

$('#submit').live('click',function(){ 
       var supp_short_code=$('.supp_short_code').text(); 
       var project_ref=$('.project_ref').text(); 
       var om_part_no=$('.om_part_no').text(); 
       var description=$('.description').text(); 
       var cost_of_items=$('.cost_of_items').text(); 
       var cost_total=$('.cost_total').text(); 
       var dataString = 'string=//' + supp_short_code + '//' + project_ref + '//' + om_part_no + '//' + description + '//' + cost_of_items + '//' + cost_total 

       $.ajax 
        ({ 
        type: "POST", 
        url: "order.php", 
        data: dataString, 
        cache: false, 
        success: function() 
         { 
          alert("Order Submitted"); 
         } 
        }); 
      }); 

但我在说什么,有可能是在每个变量的2个或5或12个值!?我的计划是向php发送一个字符串,让php解析“//”之间的值并将它们插入到用于mysql查询的单独变量中。如果有人能想到更好的方法来做到这一点,请告诉我!

回答

1

将其作为JSON字符串传输。

[{"row": 1, "supp_short_code" : blah blah....}, {"row": 2, ....} ....] 

现在这意味着你必须逐一浏览行。选择所有行并通过附加到JSON字符串上,一次构建一行数据串。这将使PHP解析更容易。

var dataString = '[' 
$('#table tr').each(function(
    var supp_short_code = $(this).filter('.supp_short_code').text(); 
    // and so on. 
    if (index > 0) { 
     dataString += ',' 
    } 
    dataString += '{"row": index, "supp_short_code": supp_short_code, .... }'; 
}); 
dataString += ']' 
+0

在服务器端使用http://www.php.net/manual/en/function.json-decode.php。 – Gazler 2010-11-04 16:10:14

+0

这听起来很有希望!我不明白的是我如何让jQuery看到表中有2行而不是只有一行(对于ex),所以它知道通过json发送更多行...? – benhowdle89 2010-11-04 16:11:04

+0

在那里我贴出了一些东西来帮助你遍历每一行。 – shoebox639 2010-11-04 17:14:44