2

私は、PHP とコーディングを学ぶために新しい Web サイトをコーディングしており、2 つの mysql テーブルによって入力される自動提案を作成しています。

これが私のコードです (はい、私は mysql を使用していますが、解決策が見つかったら mysqli でこれを書き直します!):

提案.php:

require("./config.php");

$q = $_GET['q'];

$names = '';

$result = mysql_query("SELECT name FROM company WHERE name LIKE '$q%' UNION SELECT cat FROM cat WHERE cat LIKE '$q%' UNION SELECT subcat FROM subcat WHERE subcat LIKE '$q%' LIMIT 10"");

while ($row = mysql_fetch_array($result)) { $names .= $row[name]."\n"; }

echo $names;
?>

index.php (検索ボックスがある場所)

<form class="form-search span8 offset6">
   <input type="text" id='search' name='q' class="input-medium search-query">
   <button type="submit" class="btn btn-warning">GO!</button>
</form>

後でindex.phpで(私は前にjquery.jsを呼び出します):

 <script src="public/js/jquery-ui-1.8.22.custom.min.js" type="text/javascript"
charset="utf-8"></script>
<script>
    $(function () {
        $(document).ready(function () {
            $("#search").autocomplete("./suggest.php");
        });
    });
</script>

autosuggest に入力しようとしている行は、 subcatテーブルのsubcat行、companyテーブルのnameテーブル、catテーブルのcatです。

オートサジェストが表示されませんか? どうしたの?

助けてくれてありがとう!

4

4 に答える 4

5

次のように、php から JSON 形式のデータを送信してみてください。

$names = array();
while ($row = mysql_fetch_array($result)) { 
    $names[] = $row['name']; 
}
echo json_encode($names);//format the array into json data
于 2012-08-10T04:31:04.357 に答える
2

http://jqueryui.com/demos/autocomplete/

予想されるデータ形式 ローカル データ、URL、またはコールバックからのデータには、次の 2 つのバリエーションがあります。

An Array of Strings:
[ "Choice1", "Choice2" ]
An Array of Objects with label and value properties:
[ { label: "Choice1", value: "value1" }, ... ]

選択した名前を改行で区切って返しているだけです

于 2012-08-10T04:29:15.747 に答える
1

jquery autocomplete のドキュメントから

http://jqueryui.com/demos/autocomplete/

ローカル データ、URL、またはコールバックからのデータには、次の 2 つのバリアントがあります。

An Array of Strings:
[ "Choice1", "Choice2" ]
An Array of Objects with label and value properties:
[ { label: "Choice1", value: "value1" }, ... ] 

それに応じてデータを渡すようにしてください。

于 2012-08-10T04:32:11.853 に答える
1

jquery ui autocompleteのドキュメントを読む

期待されるデータ形式

ローカル データ、URL、またはコールバックからのデータには、次の 2 つのバリアントがあります。

  • 文字列の配列:
    [ "Choice1", "Choice2" ]

  • ラベルと値のプロパティを持つオブジェクトの配列:
    [ { label: "Choice1", value: "value1" }, ... ]

label プロパティが提案メニューに表示されます。ユーザーがメニューから何かを選択した後、値が入力要素に挿入されます。プロパティが 1 つだけ指定されている場合は、両方に使用されます。値プロパティのみを指定すると、値はラベルとしても使用されます。

于 2012-08-10T04:32:56.353 に答える