的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