JQuery、AJAX、PHP などの UI テクノロジは初めてです。
Google インスタントのような機能を構築しています。バックエンドの検索エンジン インフラストラクチャは非常に高速で、テラ バイトのデータでも非常に短時間で結果を返します。
クラスに配列を返す PHP 関数があります。
solrsearch.php
class SolrSearch{
...
...
public function find( $q ){
...
...
return $found;
}
}
$found is a key value pair something like documentID=>Data
テスト文字列を使用して(ブラウザーではなく)コンソールでドライランすると、 $q 入力変数を使用せずにすべて問題ないように見え、 $found を出力して値を出力します。
これで、javascript が埋め込まれた html ファイルは次のようになります。したがって、基本的にここでは、テキスト ボックスでキーを押すたびにキャプチャし、get 要求を実行しています。
testjson.html
<html>
...
<body>
<div align="center"><p><font size = 7 face="Verdana"> Search: <input type="text" id="term" size = 60 style="font-size:22pt"/>
<table id="results">
</table>
<script>
$(document).ready( function() {
$('#term').keyup( function() {
$.get('search_json.php?q='+escape($('#term').val()), function(data) {
html = '<table id="results">';
$.each( data, function( index, val ) {
html += '<tr><td class="document"><b>'+index.key+'</b> ';
html += 'Dated '+val.value+'</td></tr>';
} );
html += '</html>';
$('#results').replaceWith( html );
} );
} );
} );
</script>
...
...
</html>
そして最後にこれが私のものです
search_json.php
$s = new SolrSearch();
print json_encode( $s->find( $_REQUEST['q'] ) );
json でエンコードされた文字列でさえ完全に正常に機能し、json をコンソール (ブラウザーではなく) に出力します。
私が直面している問題は次のとおりです。ブラウザで、textBox だけを持つ testjson.html を実行し、いくつかの文字列を入力すると、ブラウザに結果が表示されません。Fiddler (HTTP Debugging Proxy) を使用してデバッグすると、AJAX get リクエストが表示されます。
どんな助けでも大歓迎です。必要な質問に追加できるものが他にある場合は、喜んでそれを行います.
編集:
solrsearch.php の find 関数で $q をさらにデバッグして出力しましたが、値が出力されませんでした。これは、値が search_json.php から渡されていないことを意味しますが、Fiddler で GET 要求を確認できます。