3

私はjQueryが初めてです。jQueryオートコンプリートリモートデータソースを試しています ここに私のコードがあります:

HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title></title>
    <meta name="GENERATOR" content="Quanta Plus">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
  </head>
  <body>
    <meta charset="utf-8">
    <style>
      .ui-autocomplete-loading {
        background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat;
      }
    </style>
    <script>
      $(function() {
        var cache = {},
            lastXhr;
        $( "#birds" ).autocomplete({
          minLength: 2,
          source: function( request, response ) {
            var term = request.term;

            if ( term in cache ) {
              response( cache[ term ] );
              return;
            }

            lastXhr = $.getJSON( "search.php", request, function( data, status, xhr ) {
              cache[ term ] = data;

              if ( xhr === lastXhr ) {
                response( data );
              }
            });
          }
        });
      });
    </script>
    <div class="demo">
      <div class="ui-widget">
        <label for="birds">Birds: </label>
        <input id="birds"  value="" />
      </div>
    </div><!-- End demo -->
  </body>
</html>

ファイル: search.php

<?php 

require_once("includes/connection.php");

$q = strtolower($_GET["birds"]);
echo $q;
$return = array();

$query = "SELECT title
  FROM `project`
  WHERE `title` LIKE CONVERT( _utf8 '%$q%'
  USING latin1 )";

$resultset=mysql_query($query,$connection);

$json = '[';
$first = true;

while ($row = mysql_fetch_assoc($resultset)) {
  if (!$first) {
    $json .=  ',';
  } else {
    $first = false;
  }

  $json .= '{"value":"'.$row['title'].'"}';
}

$json .= ']';

echo $json;

?>

次のエラーが発生します。

Notice:
Undefined
  index: birds in /var/www/html/workbench/sudeepc/project/search.php
  on line 4
    [
      {"value":"chandrayaan"},
      {"value":"Project Management System"},
      {"value":"shoping cart"},
      {"value":"hospital management system"}
    ] 

fire bug は、そのテキスト ボックスでの検索中に次のエラーを表示し、検索の提案はありません。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

コメントによると、最初のエラーは間違った $_GET 変数を探したために発生したようです。Firebug でそれを見つけて適切に修正してくれてありがとう。

現在値が入力されていない理由は、JSON の前に余分な文字列がエコーされているためです。行を削除するecho $q;と、機能するはずです。

于 2012-05-09T18:48:27.630 に答える