Ajax异步请求PHP数据

来源:http://www.ido321.com/1138.html

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

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:

<?php

/*防止恶意调用*/

define("TEST",'test');

// 引入文件

include_once 'mysql.func.php';

// 数据库初始化

connectMySQL();

selectDB();

setZiFuJi();



//获得来自 URL 的 q 参数

$q=$_GET["q"];

//如果 q 是数字或者数字字符串

if (is_numeric($q))

  {

    $q = intval($q);

    $hint="";

    $resultDKQ = queryDB("select name from table_dake where id=$q");

    $hint = '科室名字:<select name="ksname" id="ksname" onchange="show(this.options[this.selectedIndex].value)">';

    while (!!$rowDKQ = fetchAssoc($resultDKQ))

    {

      $hint .= '<optgroup label='.$rowDKQ['name'].'>';

      $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 .= '<option style="padding-left:15px;" value ='. $rowKSQ['name'].'>'.$rowKSQ['name'].'</option>';

      }

      $hint .= '</optgroup>';

    }

  }

  // 不是数字

  else

  {

    $resultDK = queryDB("select table_dake.name from table_dake");

    $hint = '科室名字:<select name="ksname" id="ksname" onchange="show(this.options[this.selectedIndex].value)">';

     while (!!$rowDK = fetchAssoc($resultDK))

    {

      $hint .= '<optgroup label='.$rowDK['name'].'>';

      $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 .= '<option style="padding-left:15px;" value ='. $rowKS['name'].'>'.$rowKS['name'].'</option>';

      }

      $hint .= '</optgroup>';

    }

  }

 $response=$hint;

//输出响应

echo $response;

?>

 

效果:

未输入ID如上图,输入ID在下图:

Ajax异步请求PHP数据

下一篇:百家搜索:在网站中添加Google、百度等搜索引擎

你可能感兴趣的:(Ajax)