2014-09-10 124 views
1

我相當新手使用JS和AJAX,由於某些原因,我無法通過AJAX發送我的動態生成和讀取數據,並希望有人能幫助我。如何正確地通過AJAX發送數組到PHP腳本?我試着按照說明操作,但是我無法讓AJAX發送數據。第一次嘗試是一個完整的破壞,第二次得到錯誤:Uncaught TypeError:非法調用,但它似乎來自JS庫而不是我的代碼(儘管代碼很可能是它的原因!),我不知道該怎麼辦。json如何發送數組在AJAX

//first thing I tried 
    var i = 1, j = 0, cu = [], cu2 = []; 
    while (i <= tilit) { 
     cu[j] = document.getElementById("til_nro_"+i); 
     console.log(cu[j].value); 

     i++; 
    } 
    var dynamic_account_value = JSON.stringify(cu); 


jQuery.ajax({ 
     type: "POST", 
     url: 'http:mysite.php', 
     dataType: 'json', 
     data: { dynamic_account_count:tilit, db:cu , id:id, result:dynamic_account_value 
      } 
     }); 



    //2nd thing I tried 
    var i = 1, j = 0, cu = [], cu2 = []; 
    while (i <= tilit) { 

     cu[j] = document.getElementById("til_nro_"+i); 
     cu2.push(JSON.parse(cu[j].value)); 

     i++; 
    } 
    var tilinrot_lisa = JSON.stringify(cu2); 


    jQuery.ajax({ 
     type: "POST", 
     url: 'http:mysite.php', 
     dataType: 'json', 
     data: { dynamic_account_count:tilit, db:cu , id:id, result:tilinrot_lisa 
      } 
     }); 

在此先感謝大家。

+1

[可能的複製(http://stackoverflow.com/questions/2013728/passing-javascript-array-to-php-through-jquery-ajax) – Jayachandran 2014-09-10 08:20:28

+1

看看'$ .PARAM() 'http://api.jquery.com/jquery.param/ – T00rk 2014-09-10 08:20:48

+1

我認爲你正在嘗試對DOM節點進行字符串化,試試這個,而不是'cu [j] = document.getElementById(「til_nro _」+ i).value;'。 – dfsq 2014-09-10 08:21:11

回答

1

首先,給他們一些讓選擇更容易的東西,就像普通的班級一樣。其次,使用jQuery序列化

$.ajax({ 
    url : "foo", 
    data : $(".bar").serialize(), 
    success : function(response) {} 
}) 
+0

無法獲得序列化或字符串化工作,因此嘗試將「未觸及」的cu當作dynaamic:cu,但是當我讀取發送數據並接收它時,我只獲取最後一個值。 – user1054844 2014-09-10 09:26:52

+0

我不太知道如何序列化它,因爲我在動態內容上生成了div id ... – user1054844 2014-09-10 09:28:06

0

試試這個代碼片段,嘗試發送只有一個變量,然後去另一個&使用的內容類型。 你可以使用//console.log(JSON.stringify(cu));查看裏面的內容。

jQuery.ajax({ 
    type: 'post', 
    dataType: 'json', 
    data: {your_var:JSON.stringify(cu)}, 
    contentType: "application/json" 

});