程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Ajax異步請求PHP數據,ajax異步php

Ajax異步請求PHP數據,ajax異步php

編輯:關於PHP編程

Ajax異步請求PHP數據,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>'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>'name'].'>'.$rowKS['name'].'</option>';
      }
      $hint .= '</optgroup>';
    }
  }
 $response=$hint;
//輸出響應
echo $response;
?>

 

效果:

未輸入ID如上圖,輸入ID在下圖:

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


用ajax提交異步後,PHP該怎寫代碼用來返回處理的結果到客戶端

在S端直接ECHO '字符串';或 EXIT(json_encode(數組));就行了,
 

ajax的異步

每次請求是沒問題的,但是每次請求肯定會有延時。異步的問題只是會有延時,不會存在接收不到返回值的問題,收不到返回值肯定是你哪裡寫錯了。

同時你這個情況我的比較建議一次就把數據都請求過來,存在客戶端這邊,然後根據需要顯示就可以了。

希望對你有幫助!
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved