我一直在尝试实现jquery ui自动完成功能..并且基本的html代码与给定的x-相同 - http://jqueryui.com/demos/autocomplete/#remote
我已尝试过“search.php”的所有组合/代码段,例如 -
1)
<?php
if ( !isset($_REQUEST['term']) )
exit;
// connect to the database server and select the appropriate database for use
$dblink = mysql_connect('localhost', 'root', '') or die( mysql_error() );
mysql_select_db('research');
$rs = mysql_query('select uname,email,password from login where uname like "'. mysql_real_escape_string($_REQUEST['term']) .'%" order by uname asc limit 0,10', $dblink);
// loop through each zipcode returned and format the response for jQuery
$data = array();
if ( $rs && mysql_num_rows($rs) )
{
while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
{
$data[] = array(
'label' => $row['uname'] .', '. $row['password'] .' '.$row['uname'] ,
'value' => $row['uname']
);
}
}
// jQuery wants JSON data
echo json_encode($data);
flush();
?>
2)
<?php
include("includes/connect.php");
$query = "SELECT uname from login WHERE uname LIKE '%" . addslashes($_GET['term']) . "%'";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)) {
foreach($row as $val)
$tab[] = $val;
}
print json_encode($tab);
?>
3)
<?php
include("includes/connect.php");
$term = $_REQUEST['m']; // where name of the text field is 'm'
$query = "SELECT * FROM login WHERE uname LIKE '%$term%'";
$result = $mysqli->query($query);
$arr = array();
while($obj = $result->fetch_assoc()) {
$arr[] = $obj['nome'];
}
echo json_encode($arr);
?>
但仍然没有任何工作!也就是当我在自动填充的文本框中输入时,没有显示结果。可能是什么错误?有没有其他解决方案?请帮忙!!!
答案 0 :(得分:0)
传递给json_encode的变量必须是字符串数组。 例如[ “红色”, “绿色”, “蓝色”] 或一组对象文字,例如[{“value”:“red”},{“value”:“green”},{“value”:“blue”}]
每次循环时,您都需要将项目附加到现有项目。
我注意到,在所有3个代码片段中,您将当前项目分配给数组变量,而不是附加它。循环完成后,数组中唯一的项目将是循环最近处理的项目。
因此,除非您在字段中键入的内容与该项目匹配,否则自动填充功能不会显示任何内容。
这是我的PHP代码,用于在将字符串数组发送回发出请求的文件之前构建字符串数组。
$fetchedArtists = $db->query($queryToGetArtists ); $json = '['; $first = true; while($row = $fetchedArtists->fetch_assoc()) { if (!$first) { $json .= ','; } else { $first = false; } $artist = $row['artistName']; $json .= '{"value":"'.$artist.'"}'; } $json .= ']'; echo $json;