1

ファイルからデータを取得するためにajaxを使用してライブ検索ソリューションまたはjqueryオートコンプリートを探しています(後でdbから)

データを含むこのphpファイルがあるとしましょう:

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

Web でこのコードが機能することを発見しましたが、wikipedia のみをスキャンします。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>
4

2 に答える 2

1

"http://en.wikipedia.org/w/api.php?callback=?"パスをPHPファイルパスに変更することで、それを実現できます。JSON が正しくフォーマットされ、有効なものであることを確認してください。

インターネットからコード スニペットを取得して使用しないでください。少なくとも、それが何をするのかを理解してください。必要に応じてコードを拡張するのに役立つ場合があります。

于 2013-03-25T16:56:38.837 に答える
1

使用しない理由: http://jqueryui.com/autocomplete/

同じウェブサイトからの例:

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

また、返すソースの availableTags の代わりに、PHP スクリプトへのパスを指定できます。

echo json_encode($array_of_items);

提供したコードを引き続き使用する場合は、PHP スクリプトで必ず使用しecho json_encode($array);てください。応答 ajax が期待するタイプはjson

于 2013-03-25T17:08:37.637 に答える