質問

$.post('testeUpdate.php', 'autocomplete',
        function(dadosResposta) {

            $('#ns-nome').val(dadosResposta.nsName);
            $('#ns-endereco').val(dadosResposta.nsAddress);
        },
    "json");

私はこれを理解しようとしています。だから、そして私の近くにjQuery $ .POSTリファレンスリンクを持っている:

1) POSTリクエストはtesteupdate.phpに送信されます。その後、「autocomplete」と呼ばれる文字列を渡すことができます。正確?

質問1) その文字列でPOSTリクエストを渡すことは、特に次のように指すことにより、条件付きの要求を後で処理できることを意味します。 ?

2)その後、パラメーターを受け入れる「成功」コールバック関数、DadosRepostaがあります。正確?

質問2)このDadosRespostaは、サーバー側のスクリプトから来るかもしれないものですか?これは私たちが受け取ったデータを持っている引数ですか?

3) したがって、成功すると、私たちがやりたいことは、いくつかの入力要素をいくつかの値に入力することです。 val(dadosresposta.nsname);

質問3)この「ドット表記」は、JSON形式でデータにアクセスする方法ですか?それとも、通常のようにDOMを歩く方法ですか?それでは、JSONはここでどのような役割を果たしていますか?

よろしくお願いします、mem

役に立ちましたか?

解決

1) はい、この方法でPHPを使用してAutoCompleteにアクセスできます。 ($ _POST ['AutoComplete'])。しかし、Isset()でTrueを表示するという事実以外に、データはありません。

2) はい、Dadosrespostaは、サーバーから戻ってくる応答です。 $ .POSTリクエストでJSONとして最後のパラメーターを設定した場合、JavaScriptでJSONオブジェクトとしてネイティブに使用できます。この方法でデータを表示するには、PHPで使用できます json_encode()

3) データが入ったら、好きなように行うことができます。しかし、JSONが適切にフォーマットされている場合にのみ、DOT表記は機能します。参照: json.org

4) DOT表記は、JSON形式で返されるデータにアクセスする方法であり、DOMとは何の関係もありません。 $ .POSTの最後の部分を「テキスト」に変更すると、サーバーから返されるデータを通常の文字列として動作させることができます。

他のヒント

  1. はい、これは正しいです、それは唯一の投稿変数です、例えばあなたがチェックしている isset($_POST['autocomplete']), 、自動コンプリートは通常、既に入力したものに依存しているため、ここでテキストボックスの値を実際に渡したいと思うようです。
  2. はい、この関数は応答が戻ってきたときに実行されます。引数は、PHPページから戻ってくるデータが戻ってきます。
  3. 応答は次のように見えるはずです:
    { nsName: 'name', nsAddress: 'address' }
    これらの値を使用してこれらの2つのフィールドを入力しているため、ドット表記は値を取得しています 応答から, 、JSONはこれをもっときれいにしているだけです:)

私はあなたのコードをオンにしました jsfiddle あなたが見ることができるように、あなたが持っているものに基づいて構築しようとしました。私はJSFiddleのJSONエコー関数にデータを送信しました。

echo json_encode(array("post_response"=>$_POST));

ご覧のとおり、私はあなたが要求していた応答に合わせてポストデータを変更しました。サーバー側では、通常のシナリオでは通常このようになります。

if(isset($_POST['somedata']))
{
    //do stuff... you know, whatever
    echo json_encode(array("nsName" => $someString1,"nsAddress" => $someString2));
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top