zoukankan      html  css  js  c++  java
  • Ajax异步请求PHP数据

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

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

    如果输入了科室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在下图:

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

  • 相关阅读:
    洛谷 1842 [USACO05NOV]奶牛玩杂技【贪心】
    洛谷 1757 通天之分组背包【分组背包】
    洛谷 1330 封锁阳光大学
    洛谷 1019 单词接龙
    【模板】CDQ分治
    BZOJ 2734 洛谷 3226 [HNOI2012]集合选数【状压DP】【思维题】
    BZOJ 2457 [BeiJing2011]双端队列
    洛谷 2015 二叉苹果树
    牛客网 牛可乐发红包脱单ACM赛 C题 区区区间间间
    牛客网 牛可乐发红包脱单ACM赛 B题 小a的旅行计划
  • 原文地址:https://www.cnblogs.com/ido321/p/4074045.html
Copyright © 2011-2022 走看看