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、百度等搜索引擎

  • 相关阅读:
    运维
    Linux学习
    .net Core使用Knife4jUI更换Swagger皮肤
    VS Code中使用live Server
    去重复保留一条数据
    sql server 索引检测
    Centos 7 .Net core后台守护进程Supervisor教程
    鼠标移动 在左边放大图片
    根据配置表将数据从A表转入B表
    JS替换或切割
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7325272.html
Copyright © 2011-2022 走看看