2016-09-20 110 views
1

我需要發送一個AJAX帖子給PHP腳本,該腳本需要參數名稱中的[]。參數名稱中帶[]的Ajax Post

我的代碼:

$("#form").submit(function() { 
    var salutation = $("input[name='salutation ']:checked").val(); 
    var name = $("#name").val(); 
    var surename= $("#surename").val(); 
    var origin = "true"; 

    var post = jQuery.post(url, { 
     salutation: salutation, 
     name: name, 
     surname: surname, 
     origin[Newsletterform]: origin 
    }); 

    post.done(function(data) { 
     console.log("webservice-done") 
    }); 
}); 

問題與origin[Newsletterform]: origin行。

它告訴我這條線有錯誤。

如果我刪除[DATA]部分,只使用origin: origin它告訴我,我的代碼中沒有錯誤。但是我需要用[DATA]部分發送參數。

我不能改變PHP腳本中的某些東西,因爲它不是我的,並且沒有可能改變這方面的內容。

有什麼辦法可以用[DATA]發送參數名?

它應該像SCRIPT_URL?salutation=salutation&name=name&lastname=lastname&origin[Newsletterform]=true

+0

var postData = { salutation: salutation, name: name, surname: surname, 'origin[Newsletterform]': origin } var post = $.post(url, postData); 

還是用括號標記? – madalinivascu

+2

,因爲腳本會顯示我不能設置自己的原點,直接放在方括號內的參數側。我可以在自己內部設置DATA。所以當我從[Newsletterform]發送我可以稍後過濾由來源entrys –

+0

行情:''起源[Newsletterform]「:起源' – JJJ

回答

2

要將屬性添加到與語法的對象,你可以把它包在引號:你爲什麼需要在[數據]部分

var postData = { 
    salutation: salutation, 
    name: name, 
    surname: surname 
} 
postData['origin[Newsletterform]'] = origin; 

var post = $.post(url, postData); 
+0

感謝您的答覆。 postData ['origin [Newsletterform]'] =原點;解決了我的問題。似乎我只是錯過了''部分。感謝您的幫助 –

+0

這可行,但它不必要的複雜(你可以在原文中引用這個鍵) – JJJ

+0

@Juhana你是對的。更新。 –