2016-09-20 13 views
1

パラメータ名に[]が必要なPHPスクリプトにAJAX投稿を送る必要があります。Ajax [パラメータ名に[]付き投稿

私のコード:

$("#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

あなたは[データ]部分が必要なのか、なぜ? – madalinivascu

+2

スクリプトは、自分自身を設定することができない起点を、角括弧の中のパラメータ側に直接出現させるためです。自分でデータを設定することができます。ですから、私は[Newsletterform]から送信すると、後で投稿の投稿をフィルタリングすることができます –

+0

引用: '" origin [Newsletterform] ":origin' – JJJ

答えて

2

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

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

または使用ブラケット表記:

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

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

答えをありがとう。 postData ['origin [Newsletterform]'] =起点;私の問題は解決しました。私はパーツを紛失していたようだ。助けてくれてありがとう –

+0

これはうまくいきますが、不必要に複雑です(元のリテラルでキーを引用するだけでいいです)。 – JJJ

+0

あなたは正しいです。更新しました。 –

関連する問題