2013-05-06 85 views
1

我已經從用戶那裏獲取了一些輸入值,並且我想將這些值作爲參數發佈在我的AJAX請求中,因此我可以將條目添加到PHP中的數據庫中:將JavaScript中的數組元素作爲參數傳遞給AJAX POST請求

我在JS的功能是:

function reqAdd() 
{ 
    var tablename = $("table").options[$("table").selectedIndex].value 
    var fields = new Array(); 
    var inputs = $$("input.postfields"); 
    new Ajax.Request(
      "process.php?type=add&table="+tablename, 
      { 
       method: "post", 
       parameters: 
       onSuccess: functionName, 
       onFailure: ajaxFailure 
      } 
    ); 
} 

變量輸入包含所有輸入字段,我需要,所以我只需要提取他們的價值觀,但我怎樣才能將它們放到參數部分,如果他們沒有鑰匙?他們只是價值觀。

+1

也許最好使用Form.serialize()http://prototypejs.org/doc/latest/dom/Form/serialize/ – 2013-05-06 11:04:49

+0

爲什麼他們沒有鑰匙?你的PHP期望它們的格式是什麼?您始終可以爲它們使用自定義序列化,例如CSV或JSON。 – Bergi 2013-05-06 12:06:47

回答

0

使用Form.serializeElements()需要一個元素數組$$("input.postfields")並將其轉換爲查詢字符串或準備發佈的對象。

所以

var inputs = $$("input.postfields"); 
inputs = Form.serializeElements(inputs); //add this line 

而且

parameters: inputs, 

個人而言,我喜歡傳球的對象,以我的Ajax請求,並跳過提交的投入,所以我會通過一個選項反對serializeElements()

inputs = Form.serializeElements(inputs,{hash:true,submit:false}); 

http://api.prototypejs.org/dom/Form/serializeElements/

相關問題