的Lucene/Solr的即時發展我是新來的如jQuery,AJAX,PHP等使用jQuery/PHP/AJAX/JSON
我建立一個谷歌即時類似功能的用戶界面技術。我的後端搜索引擎基礎結構非常快,即使是超快速的Tera字節數據也能返回結果。
我有一個類中的PHP函數,返回我的數組:
solrsearch.php
class SolrSearch{
...
...
public function find($q){
...
...
return $found;
}
}
$found is a key value pair something like documentID=>Data
當我幹即控制檯上(而不是在瀏覽器)與測試線運行它,而不是使用$ Q輸入變量的一切似乎都很好,我打印$找到並打印值。
現在用嵌入的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雖然在控制檯(不在瀏覽器上)
這是我面臨的問題:在瀏覽器,當我運行testjson.html只有一個文本框,我輸入一些字符串,所以我沒有得到任何結果顯示在瀏覽器上。當我使用Fiddler(HTTP調試代理)進行調試時,我可以看到AJAX獲取請求。
任何幫助,將不勝感激。如果有什麼我可以添加到需要的問題,我會非常樂意這樣做。
編輯:
我進一步調試和在solrsearch.php查找功能打印$ q和它沒有打印,這意味着該值是沒有得到來自search_json.php傳遞的值,但是我可以看到Fiddler上的GET請求。
你有沒有嘗試使用$ .getJSON而不是$不用彷徨,因爲它是比較合適的,如果你期待JSON數據,並保證,如果JSON是正確的,你會得到一個對象作爲數據。回調函數是否實際執行?你有沒有嘗試console.log數據看看它是否正確? – GillesC 2012-04-27 11:37:09
@gillesc:感謝您的幫助。其實這個查詢並沒有被傳遞到UI中找到solrsearch.php的函數。 – Yavar 2012-04-27 11:49:35