此种功能 我已经搞了两天 才测试出最有效的方法 当然 还是靠百度的帮助
下面来介绍一下把
function xianc(did){
var DateUrl = "did="+did;
$.ajax({
type: "get",
url: "do.php?ac=demo&op=friend",
data: DateUrl,
dataType: "json",
success: function(response){
eo=$(\'#t_input\');
var re=new RegExp("^"+eo.val(),"i") ; // new RegExp这个函数是一个匹配函数 具体查手册把
var json = eval(response); // 先格式化回调回来的数组 我是这么理解 的 这一步是必须做的
var j=0
for(var i=0; i<json.length; i++) //遍历回过来的的数组
{
if(re.test(json[i].name)){ //如果变量re 的值 匹配 数组中的 一个值 那么执行
$(\'#sel\').append("<li onclick=xs(\'"+json[i].name+"\',"+json[i].uid+")
> "+json[i].name+"</li>"); //添加一个节点 把数据写入里面
j++;
$(\'#sel\').css("display","");
} //alert($(\'#sel\').size());
}
}
});
}
});
好啦 看下后台的关键代码把
if($_GET[\'op\']==\'friend\'){
if($_GET[\'did\']){
$query
= $_SGLOBAL[\'db\']->query("SELECT a.uid,b.uid fuid , b.name FROM
".tname(\'friend\')." a , ".tname(\'space\')." b WHERE a.fuid=b.uid AND
a.uid=".$_SGLOBAL[\'supe_uid\']." AND b.namestatus=1 AND b.name like
\'%".$_GET[\'did\']."%\' ");
$count =
$_SGLOBAL[\'db\']->result($_SGLOBAL[\'db\']->query("SELECT COUNT(*)
FROM ".tname(\'friend\')." a , ".tname(\'space\')." b WHERE a.fuid=b.uid
AND a.uid=".$_SGLOBAL[\'supe_uid\']." AND b.namestatus=1 AND b.name like
\'%".$_GET[\'did\']."%\'"), 0);
$listfriend = array();
while ($value = $_SGLOBAL[\'db\']->fetch_array($query)) {
//$listfriend[] = $value;
$listfriend[] = array (\'name\'=>$value[\'name\'],\'uid\'=>$value[\'fuid\']);
}
if($count){
echo json_encode($listfriend) ;
//关键语句 后台处理后的函数是$listfriend 但是想把这个数组 传回前台 就要 用到json_encode()解析一下这个数组
}
die; //这个die 是因为我用的uchome系统做的 后面是引用模版 因此在次 结束一下就OK啦 传递过去的就是echo的东西
}
}