2013-03-25 100 views
1

我使用AJAX从文件(后来从DB)使用jQuery,AJAX,JSON生活搜索,PHP

采取数据比方说,我有数据这个PHP文件寻找一个生活搜索解决方案或jquery的自动完成:

[ 
{ID: "1", "Name": "User 1"}, 
{ID: "2", "Name": "User 2"}, 
{ID: "3", "Name": "User 3"}, 
{ID: "4", "Name": "User 4"} 
] 

我在网上找到这段代码它的工作原理,但它仅scanns维基百科,我怎么能提出的是,scann我的PHP文件? http://jsfiddle.net/TzQJP/

<html> 
    <head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <title>Comperio Super Simple Instant Search</title> 
    </head> 
    <body> 
    <h1>Search Wikipedia!</h1> 
    <br /> 
    <input id="searchterm" /> 
    <button id="search">search</button> 
    <div id="results"></div> 
    <script> 
     $("#searchterm").keyup(function(e){ 
     var q = $("#searchterm").val(); 
     $.getJSON("http://en.wikipedia.org/w/api.php?callback=?", 
     { 
      srsearch: q, 
      action: "query", 
      list: "search", 
      format: "json" 
     }, 
     function(data) { 
      $("#results").empty(); 
      $("#results").append("<p>Results for <b>" + q + "</b></p>"); 
      $.each(data.query.search, function(i,item){ 
      $("#results").append("<div><a href='http://en.wikipedia.org/wiki/" + encodeURIComponent(item.title) + "'>" + item.title + "</a><br>" + item.snippet + "<br><br></div>"); 
      }); 
     }); 
     }); 
    </script> 
    <div style="position:absolute;bottom:0;right:0;text-align:right"> 
     <a href="http://blog.comperiosearch.com/author/fmcdowall/">Fergus McDowall</a> 2012<br> 
     <br> 
    </div> 
    </body> 
</html> 

回答

1

通过改变"http://en.wikipedia.org/w/api.php?callback=?"路径到你的PHP文件的路径,你可以完成它。确保你的JSON结果格式正确并且有效。

不要只是从互联网上的代码片段,并使用它。至少知道它做了什么。它可以帮助您按需要扩展代码。

+0

类型我做到了,没有任何变化 – AndrewS 2013-03-25 16:57:55

1

为什么不使用:在同一网站上http://jqueryui.com/autocomplete/

例如:

$(function() { 
var availableTags = [ 
    "ActionScript", 
    "AppleScript", 
    "Asp", 
    "BASIC", 
    "C" 
]; 
$("#tags").autocomplete({ 
    source: availableTags //OR path to your PHP script 
}); 
}); 

,你可以在源返回

echo json_encode($array_of_items); 

路径到PHP脚本,而不是availableTags如果您仍想使用您提供的代码,请确保您在PHP脚本上执行echo json_encode($array);,因为响应jax预计应该是json

+0

我真的无法得到它的工作。我从来没有与Ajax或实时搜索工作过。 – AndrewS 2013-03-25 17:16:10

+0

只需要阅读API文档,您只需要下载文件并将其包含在您的中,然后使用上面给出的示例,但将#tags更改为您的输入ID。 – GGio 2013-03-25 17:20:16

+0

嗯,我唯一的问题是我的search.php脚本和javascript代码之间的连接...我不明白连接:) – AndrewS 2013-03-25 17:27:32