tested

此种功能 我已经搞了两天 才测试出最有效的方法  当然 还是靠百度的帮助

下面来介绍一下把

 
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的东西
 }
}

分类:

技术点:

相关文章: