2012-01-16 18 views
0

は、私は、スクリプトを持っているパラメータというPHPスクリプトに投稿データ:Ajaxのポストは

xhr.open("POST","processData.php"); 

と私はそれにデータの一部いったん送信しています:

xhr.send(email); 

どうだろうのポスト複数peiceデータをPHPスクリプトに?私は、処理するために送信したい変数名と姓を持っていると言いますか?私はこれを試した:

xhr.send(エッセイ、ファーストネーム);

しかし、PHPスクリプトで何をするべきかわからないので、通常の$ _POST ['essay']を使って値を収集しますか?エンコードについてはどうですか?

ありがとうございました。あなたが得るサーバー側では

var obj = { 
    essay: essay, 
    firstName: firstName 
}; 
xhr.send("data=" + JSON.stringify(obj)); 

json_decode($_POST['data']); //Gives you a standard object with fields essay and firstName 

答えて

3

あなたはオブジェクトを作成し、それを送信しますあなたはMDN referenceを見ることができます:それは必要になる可能性がありますそれあなたの変数は、スペース、アンパサンドなど珍しい文字が含まれている場合は、他の

+0

を私は(json_decodeを使用するときに何が起こる:現在のブラウザでJSエンジンは、あなたが補償し、このスクリプトを含める必要があるので、(6,7)、ないで構築されたJSONの方法がありますが、古いIEの$ _POST ['data']); PHPで?どのように私は分離変数にファーストネームと電子メールを取得するのですか?私は一般的にPHPのようにデータの両方の部分を別々に送ることができる方法はありませんか? – ragebunny

+1

これは、 'xhr.send(" essay = "+ JSON.stringify(essay)+"&firstName = "+ JSON.stringify(firstName));'です。しかし、上記のことをすると、 '$ result = json_decode($ _ POST ['data']);'を呼び出すことができ、 '$ result-> essay'と' $ result-> firstName'にアクセスできます。 –

+0

すごく感謝します。最後に一つだけ。なぜエンコードするのですか? – ragebunny

2

がちょうどencodeURIComponentで約send()

xhr.send("essay=" + encodeURIComponent(essay) 
      + "&firstname=" + encodeURIComponent(firstName)); 

に沿って渡すクエリ文字列を作成

関連する問題