html:<script type="text/javascript" src="../../js/jquery-autocomplete/lib/jquery.js"></script>
<script type='text/javascript' src='../../js/jquery-autocomplete/lib/jquery.bgiframe.min.js'></script>
<script type='text/javascript' src='../../js/jquery-autocomplete/lib/jquery.ajaxQueue.js'></script>
<script type='text/javascript' src='../../js/jquery-autocomplete/lib/thickbox-compressed.js'></script>
<script type='text/javascript' src='../../js/jquery-autocomplete/jquery.autocomplete.js'></script>
<link rel="stylesheet" type="text/css" href="../../js/jquery-autocomplete/jquery.autocomplete.css" />
<link rel="stylesheet" type="text/css" href="../../js/jquery-autocomplete/lib/thickbox.css" />
</head>
<script type="text/javascript">
$().ready(function() {
$("#autocompletebox").autocomplete("search.php", {
width: 260,
selectFirst: false,
max:  20,
});
$("#autocompletebox").result(function(event, data, formatted) {
if (data)
$(this).parent().next().find("input").val(data[1]);
});
});
</script><body>
<input type="text" id="autocompletebox">
</body>
php:
<?php
include ("../../inc/mysqlconn.php");$q = strtolower($_GET["q"]);
if (!$q) return;$sql="select * from noa_students";
$result=mysql_query ($sql);
$items = mysql_fetch_array ($result);
foreach ($items as $key=>$value) 
{
 if (strpos(strtolower($key), $q) !== false) 
 {
echo "$key|$value\n";
 }
}
?>
现在的结果是输入后只能显示表头,如输入n 可以显示name ,这不是我想要的结果
中文也不能显示,哪里有错呢?

解决方案 »

  1.   

    说一下,我的数据库用的是gbk
      

  2.   

    while ( $row= mysql_fetch_array ($result))
    {
    if ( strpos (strtolower ( $row['name']) ,$q) !== false )
    {
    echo $row['name'] . "\n";
    }
    }
    我把php改成这样,现在是只能匹配到英文的name,中文的搜索不到,怎么处理呢?我的数据库是gbk
      

  3.   

    数据库全是gbk,有没有不转数据库的方法?
      

  4.   

    ajax发送gbk编码数据有问题,并不是非要转数据库编码
      

  5.   

    include ("../../inc/mysqlconn.php");$q = strtolower($_GET["q"]);
    if (!$q) return;$sql="select * from noa_students";
    $result=mysql_query ($sql);
    //$items = mysql_fetch_array ($result);
    while ( $row= mysql_fetch_array ($result))
    {
    if ( strpos (strtolower ( mb_convert_encoding ($row['name'], "UTF-8", "GBK" )) ,$q) !== false )
    {
    echo $row['name'] . "\n";
    }
    }
    终于解决!