Koduję nową stronę internetową, aby uczyć się PHP i kodowania, i robię autosuggestu, który jest wypełniony przez dwa stoły MySQL.

Heres mój kod (tak, używam MySQL, ale przepisuję to w MySQLI, kiedy znalazłem rozwiązanie!):

Sugeruj.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 (gdzie jest wyszukiwanie)

<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>

Później w index.php (nazywam jQuery.js wcześniej):

 <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>

Rzędy, które próbuję wypełnić mój autosuggest to subcat wiersz z tabeli subcat , tabeli tabeli z firmy Silny> Tabela i Cat z Cat tabeli.

Autosuggest się nie pojawia? Co jest nie tak?

Dzięki za wszelką pomoc!

2
Muhambi 10 sierpień 2012, 08:25

4 odpowiedzi

Najlepsza odpowiedź

Spróbuj wysłać sformatowane dane JSON z PHP, jak:

$names = array();
while ($row = mysql_fetch_array($result)) { 
    $names[] = $row['name']; 
}
echo json_encode($names);//format the array into json data
5
Sudhir Bastakoti 10 sierpień 2012, 04:31

http://jqueryui.com/demos/autodumptere/

Oczekiwany format danych Dane z lokalnych danych, adresu URL lub wywołania zwrotnego mogą pojawić się w dwóch wariantach:

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

Właśnie zwracasz nazwy wybrane oddzielone przerwami

2
user557846user557846 10 sierpień 2012, 04:29

Przeczytaj Dokumentacja jQuery UI Autouzupełniana

Oczekiwany format danych.

Dane z danych lokalnych, adres URL lub wywołanie zwrotne mogą przyjść w dwóch wariantach:

  • Tablica ciągów:
    [ "Choice1", "Choice2" ]

  • Tablica obiektów z właściwościami etykietą i wartością:
    [ { label: "Choice1", value: "value1" }, ... ]

Właściwość etykiety jest wyświetlana w menu sugestii. Wartość zostanie wstawiona do elementu wejściowego po wybraniu czegoś z menu. Jeśli określono tylko jedną właściwość, zostanie użyty zarówno dla, np. Jeśli podasz tylko właściwości wartości, wartość zostanie również wykorzystana jako etykieta.

1
Community 20 czerwiec 2020, 09:12

Z dokumentów autouzupełniania jQuery

http://jqueryui.com/demos/autodumptere/

Dane z danych lokalnych, adres URL lub wywołanie zwrotne mogą przyjść w dwóch wariantach:

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

Spróbuj odpowiednio przekazać swoje dane.

1
rahul 10 sierpień 2012, 04:37