質問

次の方法で$ .post()を使用しようとしています。

$.post("file.php", { file_id: $(this).val()}, function(data){...} file.php 次に、データベースクエリを実行し、タイトル、説明、画像参照を備えた配列を返します。

私がやりたいことは、 .val() それぞれのフォームフィールドの場合。私はこれを単一の変数で行う方法を理解しています、それはただ次のことです:

$.post("file.php", { file_id: $(this).val()}, function(data){ 
   $('#title').val(data);
}

しかし、どのようにして、データを別の変数または配列としてjQueryで認識できるように戻すことができますか?

前もって感謝します

役に立ちましたか?

解決

見る $ .postのドキュメント. 。 4番目のパラメーターはデータ型です。これをJSONに設定して、返品データをJavaScriptオブジェクトまたは配列に解析することができます。

$.post(
   "file.php", 
   { file_id: $(this).val() }, 
   function(data){ $('#title').val(data.title); $('#para').val(data.paragraph); },
   'json');

あなたのfile.phpファイルで、あなたは次のようなことをすることができます

<?php
$return_data=array('title'=>'Fishes Go To Market','paragraph'=>'Lots of stuff');

header('Content-Type: application/json');
echo json_encode($return_data);
exit();

jqueryがあなたのデータがJSONであると想定されていることを知っているように、header()を必ず含めてください。json_encodeを使用して適切にフォーマットされます。

を参照してください json_encode 詳細についてはドキュメント ヘッダー上のドキュメント. 。 remeberヘッダー()およびjson_encodedデータを印刷する前に、他の出力を発生させることはできません。

他のヒント

最も簡単な方法は、JSONとして値を渡すことです。サーバー上の配列をJSONに変換する必要があります(たくさんあります これで利用可能なサーバー側のライブラリ)。そしてあなたを変更します .post() 次のような4番目のパラメーターを追加して、JSONとしてデータを返す方法:

$.post("file.php", { file_id: $(this).val()}, function(data) { ... }, "json");

その後、次のように変数を簡単に入力できます。

$('#title').val(data.title);
$('#description').val(data.description);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top