此种功能 我已经搞了两天 才测试出最有效的方法 当然 还是靠百度的帮助
下面来介绍一下把
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 οnclick=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的东西
}
}