Мне нужно сделать автозаполнение предложения для моего сайта, и данные должны быть получены из базы данных. Я хочу использовать автозаполнение JQuery. вот мой код, но он не работает! Это мой php-файл с именем gethint.php:
<?php require_once ('config.php'); $q=$_REQUEST["q"]; $sql="SELECT `fname` FROM `Property` WHERE fname LIKE '%$q%'"; $result = mysql_query($sql); $json=array(); while($row = mysql_fetch_array($result)) { $json[]=array( 'value'=> $row['fname'], 'label'=> $row['fname'] ); } echo json_encode($json); ?>
и тогда это мой html-файл:
<html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script> <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" /> <script type="text/javascript"> $(document).ready(function(){ $("#hint").autocomplete({ source:'gethint.php', minLength:1 }); }); </script> </head> <body> <form class="sansserif" action="view.php" method="post"> Name: <input type="text" id="hint" name="hint" > <input type="submit" name="submit" value="View"> </form> </html>
Это заняло много времени, но я не мог найти проблему. Мне было интересно, может ли кто-нибудь помочь мне. Благодарю.
Я сделал некоторые изменения, возможно, вам нужно что-то исправить, но посмотрите, помогает ли …
Php:
<?php require_once ('config.php'); $q=$_REQUEST["q"]; $sql="SELECT `fname` FROM `Property` WHERE fname LIKE '%$q%'"; $result = mysql_query($sql); $json=array(); while($row = mysql_fetch_array($result)) { array_push($json, $row['fname']); } echo json_encode($json); ?>
Html + jquery:
<html> <head> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script> <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" /> </head> <body> <form class="sansserif" action="view.php" method="post"> Name: <input type="text" id="hint" name="hint" /> <input type="submit" name="submit" value="View"> </form> <script type="text/javascript"> $(function() { $( "#hint" ).autocomplete({ source: function( request, response ) { $.ajax({ url: "gethint.php", dataType: "jsonp", data: { q: request.term }, success: function( data ) { response( data ); } }); }, }); }); </script> </body> </html>
Вы можете увидеть рабочий пример: http://zrift.com/jQueryAutocomplete/
<?php require_once ('..\config.php'); $q=$_REQUEST["term"]; $sql="SELECT `fname` FROM `Property` WHERE fname LIKE '%$q%'"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)) { $json[]=array( 'value'=> $row['fname'], 'label'=> $row['fname'] ); } echo json_encode($json); ?>
Все, что я изменил, было $ _REQUEST ["q"] до $ _REQUEST ["term"].
Ваш PHP-скрипт должен принимать параметр term
, а не q
.