Heim >Backend-Entwicklung >PHP-Tutorial >Ajax异步请求PHP数据_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 .= ''; } } // 不是数字 else { $resultDK = queryDB(select table_dake.name from table_dake); $hint = '科室名字: