Ajax异步请求PHP数据


接到了老师的一个作业,实现的布局如图:

如果输入了科室ID,科室名字只显示与ID对应的,若没有输入,则显示全部,然后根据I科室名字的值,在所属大科中的文本框自动显示科室名字所在的大科。例如:选择了心血管内科,则在所属大科显示内科。

主要代码如下:

根据ID请求科室

function showHint(str)
{
    var xmlhttp;
    if (window.XMLHttpRequest)
     {// IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
     }
      else
     {// IE6, IE5
        xmlhttp=new ActiveXObject(Microsoft.XMLHTTP);
     }
     xmlhttp.onreadystatechange=function()
    {
       if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
        document.getElementById(txtHint).innerHTML=xmlhttp.responseText;
      }
  }
    xmlhttp.open(GET,keshi.php?q=+str,true);
    xmlhttp.send();
}

keshi.php:


 ';
    while (!!$rowDKQ = fetchAssoc($resultDKQ))
    {
      $hint .= '
'; $resultKSQ = queryDB(select table_dake.id,table_keshi.sid,table_keshi.name from table_dake,table_keshi where table_dake.name='{$rowDKQ['name']}' and table_keshi.sid=table_dake.id); while(!!$rowKSQ = fetchAssoc($resultKSQ)) { $hint .= ''.$rowKSQ['name'].''; } $hint .= ''; } } // 不是数字 else { $resultDK = queryDB(select table_dake.name from table_dake); $hint = '科室名字: '; while (!!$rowDK = fetchAssoc($resultDK)) { $hint .= ''; $resultKS = queryDB(select table_dake.id,table_keshi.sid,table_keshi.name from table_dake,table_keshi where table_dake.name='{$rowDK['name']}' and table_keshi.sid=table_dake.id); while(!!$rowKS = fetchAssoc($resultKS)) { $hint .= ''.$rowKS['name'].''; } $hint .= ''; } } $response=$hint; //输出响应 echo $response; ?> 效果: 未输入ID如上图,输入ID在下图: 下一篇:百家搜索:在网站中添加Google、百度等搜索引擎