先生から課題を受け取り、実装したレイアウトは以下のとおりです:
部門 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 .= ''; ; } } // 数値ではありません { $resultDK = queryDB(select table_dake.name from table_dake); $hint = '部門名: などの検索エンジン