2015-07-12 26 views
0

我想通過使用$ .ajax的$ _POST發送一些數據。我嘗試通過「數據」發送自定義字段,但是我無法使其工作。

下面是我得到了代碼:

$.ajax({ 
      method: "POST", 
      url: templateDir.concat('/updatedetails.php'), 
      data: { description: $(replaced).val().replace(/['"]+/g, ''), id: author } 
     }) 

此代碼的工作。不過,我不希望它總是發送「說明」 - 我希望它使用元素的name屬性是這樣的:

$.ajax({ 
      method: "POST", 
      url: templateDir.concat('/updatedetails.php'), 
      data: { $(replaced).attr('name'): $(replaced).val().replace(/['"]+/g, ''), id: author } 
     }) 

有了這個代碼,我得到以下錯誤:「預期的表現,得到 '。''

回答

2

您不能在對象文字中動態定義屬性的名稱。您需要創建一個對象並使用數組語法設置該屬性。

例如

var data = {id: author }; 
data[$(replaced).attr('name')] = $(replaced).val().replace(/['"]+/g, ''); 
$.ajax({ 
     method: "POST", 
     url: templateDir.concat('/updatedetails.php'), 
     data: data 

    }) 
+0

我怎麼能這樣做?你能給我一個提示嗎? – Radu

+0

已經在上面了。 :) –

+0

謝謝一堆!奇蹟般有效。將在8分鐘內接受答案! – Radu

3
var inputObj = {}; 
inputObj[$(replaced).attr('name')] = $(replaced).val().replace(/['"]+/g, ''); 
inputObj['id'] = author; 
$.ajax({ 
     method: "POST", 
     url: templateDir.concat('/updatedetails.php'), 
     data: inputObj 
});