私はあなたが何をしたいのかを知っているが、具体的なコードなしで私ができる最善のは、あなたの一般的な答えを与えています。
ユーザーがフィールドを塗りつぶしたときに、そのフィールドをサーバーに投稿し、製品をルックアップしていくつかのものを戻したいとします。
基本は次のようになります。
$(document).ready(function(){
//rolling timeout
var timeout;
$('#field').on('keyup', function(e){
if(timeout) clearTimeout(timeout);
timeout = setTimeout(function(){
var data = {
"field" : $('#field').val()
};
$.post('{url}', data, function(response){
if(response.debug) console.log(response.debug);
if(response.success){
//open other form
$('{otherFormProductField}').val(response.product);
}
}); //end post
},450); //end timeout
});//end onKeyup
}); //end onReady
PHPでは、リクエストを処理する必要があります。 $_POST
アレイからfield
を引き出し、データベースで検索します。レスポンス配列を作成し、JSONとしてクライアントに送り返します。私はこのような構造で応答を構築するのが好きです。
{
success : "message", //or error : "message"
debug : "",
item : ""
}
次にPHPでこれを行います。
ob_start();
..code..
$response['debug'] = ob_get_clean();
header("Content-type:application/json");
echo json_encode($response);
この方法で、あなたはそれを開発するときに、まだ(側の出力バッファ・コール)デバッグ情報をプリントアウトすることができ、それはJSONまたはヘッダコールをめちゃくちゃ心配する必要はありません。
注:タイムアウトを使用すると、キーを押すたびにリセットされます(ローリングタイムアウト)。キーが離されるたびに前のタイムアウトがリセットされます。そのようにすれば、ユーザーは一度だけキー入力ごとにリクエストを送信するのではなく、入力を終了するとリクエストを送信します。私は450
ミリ秒がこれに最適な値であることを発見しました。あまりにも短くはありません。基本的には、入力を中止すると450
ミリ秒になります。$.post
ここにあなたのコードを投稿してください。この – Akintunde007
へようこそ。 [最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)と[どのように良い質問をしますか?](http://stackoverflow.com/jp)をお読みください。 help/how-to-ask) –
@Akintunde - 私はOPの心を読むことができるので、私はしません。 <キュースピッキーな音楽> – ArtisticPhoenix