可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I need to to do autocomplete suggestion for my website and the data should be retrieved from database. I want to use JQuery autocomplete. here is my code but it doesn't work! This is my php file with the name of 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); ?>
and then this is my html file :
<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>
It took a lot of time but I couldn't find the problem. I was wondering if someone could help me. Thanks.
回答1:
I did some changes, maybe you need to fix something but take a look to see if helps...
The 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); ?>
The 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>
回答2:
You can see a working example at: 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); ?>
All I changed was the $_REQUEST["q"] to $_REQUEST["term"].
回答3:
Your PHP script should be accepting a term
parameter, not q
.