index.html内容:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="gb2312"> 
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    
<link type="text/css" rel="stylesheet" href="suggest.css"/>
<script type="text/javascript" src="suggest.js"></script>
  </head>
  <body onclick="hide_suggest();">
  
   <form action="result.php" method="post" name="search" autocomplete="off">
   <input type="text" name="keyword" id="keyword" onkeyup="keyupdeal(event);" onclick="keyupdeal(event);">
   <!--<input type="text" name="keyword" id="keyword" onkeyup="keyupdeal(event);" onkeydown="keydowndeal(event);" onclick="keyupdeal(event);"/>/-->
<input type="submit" value="手气不错"/>
<div id="suggest"></div>
   </form>
  </body>
</html>
---------------------------------------------------------------------------ajax_result.php 文件内容:

if($_POST[keyword])
{
//echo iconv("utf-8","gb2312",$_POST[keyword]);
//$keyword=iconv("gb2312","utf-8",$keyword);

$keyword=trim($_POST[keyword]);
$conn=mysql_connect("localhost","root","root");
mysql_select_db("bg51cp");
$sql="select * from suggest where name like '".$keyword."%' order by cname desc";
//echo $sql;
//exit;
//mysql_query("set names gb2312");
$query=mysql_query($sql,$conn) or die("查询失败!");
$num=mysql_num_rows($query);
if($num!=0)
{
echo "<ul>";
for($i=0;$i<=10;$i++)
{
$rs=mysql_fetch_assoc($query);
echo "<li value=".$i." onclick='form_submit()' onmouseover='mo(this.value)'>".$rs[name]."</li>";
}
echo "</ul>";
}
}
else
{
exit;
}---------------------------------------------------------------------------
suggest.js内容:
var j=-1;
var temp_str;
var $=function(node){
return document.getElementById(node);
}
var $$=function(node){
return document.getElementsByTagName(node);
}
function ajax_keyword(){
var xmlhttp;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4){
if (xmlhttp.status==200){
var data=xmlhttp.responseText;
//alert(data);
$("suggest").innerHTML=data;
j=-1;
}
}
}
xmlhttp.open("post", "ajax_result.php", true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send("keyword="+$("keyword").value);
//alert("keyword="+escape($("keyword").value));
//xmlhttp.send("keyword="+escape($("keyword").value));
//xmlhttp.send(data);
}
function keyupdeal(e){
var keyc;
if(window.event){
keyc=e.keyCode;
}
else if(e.which){
keyc=e.which;
}
if(keyc!=40 && keyc!=38){
ajax_keyword();
temp_str=$("keyword").value;
}
} function set_style(num){
for(var i=0;i<$$("li").length;i++){
var li_node=$$("li")[i];
li_node.className="";
}
if(j>=0 && j<$$("li").length){
var i_node=$$("li")[j];
$$("li")[j].className="select";
}
}
function mo(nodevalue){
j=nodevalue;
set_style(j);
}
function form_submit(){
if(j>=0 && j<$$("li").length){
$$("input")[0].value=$$("li")[j].childNodes[0].nodeValue;
}
document.search.submit();
}
function hide_suggest(){
var nodes=document.body.childNodes
for(var i=0;i<nodes.length;i++){
if(nodes[i]!=$("keyword")){
$("suggest").innerHTML="";
}
}
}

function keydowndeal(e){
var keyc;
if(window.event){
keyc=e.keyCode;
//alert(keyc);
}
else if(e.which){
keyc=e.which;
}
if(keyc==40 || keyc==38){
if(keyc==40){
if(j<$$("li").length){
j++;
if(j>=$$("li").length){
j=-1;
}
}
if(j>=$$("li").length){
j=-1;
}
}
if(keyc==38){
if(j>=0){
j--;
if(j<=-1){
j=$$("li").length;
}
}
else{
j=$$("li").length-1;
}
}
set_style(j);
if(j>=0 && j<$$("li").length){
$("keyword").value=$$("li")[j].childNodes[0].nodeValue;
}
else{
$("keyword").value=temp_str;
}
}
}
---------------------------------------------------------------------------
suggest.sql内容:
CREATE TABLE `suggest` (
  `name` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;INSERT INTO `suggest` VALUES ('abs');
INSERT INTO `suggest` VALUES ('acos');
INSERT INTO `suggest` VALUES ('acosh');
INSERT INTO `suggest` VALUES ('中');
INSERT INTO `suggest` VALUES ('中国');
INSERT INTO `suggest` VALUES ('中华');

解决方案 »

  1.   

    JS程序里  有个javascript的函数  escape() 他把我的中文 比如:”我们“  转成了  “%u6211%4EEC”  请问在PHP里我怎么给转换回来啊?
      

  2.   

    有,我给你一个方法
    function unescape($str) 
    { // 对js的编码进行解码 
     $str = rawurldecode($str); 
         preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/U",$str,$r); 
         $ar = $r[0]; 
         foreach($ar as $k=>$v) 
         { 
              if(substr($v,0,2) == "%u") 
                    $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4))); 
              elseif(substr($v,0,3) == "&#x") 
                    $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1))); 
              elseif(substr($v,0,2) == "&#")
               $ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1))); 
              
         } 
         return join("",$ar);  

    这个应该可以
      

  3.   

    thank you  for SeerMi