首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lucene/Solr即时开发使用jQuery/PHP/AJAX/JSON

Lucene/Solr即时开发使用jQuery/PHP/AJAX/JSON
EN

Stack Overflow用户
提问于 2012-04-27 11:32:04
回答 2查看 962关注 0票数 1

我是新的UI技术,如JQuery,AJAX,PHP等。

我正在构建一个谷歌即时类似的功能。我在后端的搜索引擎基础设施非常快,甚至在超快的时间内返回数据的Tera的结果。

在一个类中有一个PHP函数,它返回一个数组:

代码语言:javascript
复制
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请求。

代码语言:javascript
复制
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>&nbsp;';
            html += 'Dated '+val.value+'</td></tr>';
        } );
        html += '</html>';
        $('#results').replaceWith( html );
      } );
    } );
    } );
    </script>
    ...
    ...
    </html>

最后这里是我的

代码语言:javascript
复制
search_json.php

$s = new SolrSearch();
print json_encode( $s->find( $_REQUEST['q'] ) );

即使是json编码的字符串也能很好地工作,并在控制台(而不是浏览器上)打印json。

这是我面临的问题:在浏览器上,当我运行testjson.html时,它只有一个textBox,我输入了一些字符串,所以我不会在浏览器上显示任何结果。当我使用Fiddler (HTTP调试代理)调试它时,我可以看到AJAX请求。

任何帮助都将不胜感激。如果还有什么需要补充的话,我会非常乐意这样做的。

编辑:

我在solrsearch.php中的find函数中进一步调试和打印了solrsearch.php,它没有打印值,这意味着该值不会从search_json.php中传递,但是我可以在Fiddler上看到GET请求。

EN

回答 2

Stack Overflow用户

发布于 2012-04-27 11:37:23

我猜这句话:

  • html += '</html>';

应该是

  • html += '</table>';

顺便说一句,与$('#results').html( html );相比,不要使用$('#results').html( html );尝试

编辑:而不是$.get(),尝试使用$.ajax():

代码语言:javascript
复制
$.ajax({
   url: 'search_json.php',
   type: 'POST',
   data: { q: escape($('#term').val() },
}).done(function(resp) {
   //Your html code with response options
});
票数 0
EN

Stack Overflow用户

发布于 2013-09-11 14:28:23

如果您的前端使用HTML,您肯定需要查看AJAX-SOLR。

AJAX是一个JavaScript库,用于创建Apache的用户界面。

  • 演示站点
  • 遵循教程
  • 浏览维基
  • 阅读文档
  • 探索代码
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10349852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档