2010-11-04 42 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