作者:好人森森_195 | 来源:互联网 | 2018-07-17 03:43
很多朋友都是用js来实现级联菜单了,那样有一个不好就是更新可能要修改源码,现在提供的这款ajax+php是一个实时的,不好之处在于耗费服务器资源了。
main.php
function getoption(select1,target)
{
if(select1.value!=0){
//select1是提交数据的来源的select菜单名
var url = "getoption.php?pid="+select1.value;//取得xml的url
//alert(url);
var ajax = InitAjax();
var i = 0;
ajax.open("GET", url, true);
ajax.Onreadystatechange= function() {
//如果执行是状态正常,那么就把返回的内容赋值给指定的地方
if (ajax.readyState == 4 && ajax.status == 200) {
var obj = ajax.responseXML;
var properties = obj.getElementsByTagName("property");
var name,value;
target.options.length = 1;
for (var i=0,x=1;i
name = properties[i].getElementsByTagName("name")[0].firstChild.nodeValue;
value = properties[i].getElementsByTagName("value")[0].firstChild.nodeValue;
target.options[x] = new Option();
target.options[x].text = name;
target.options[x].value = value;
}
}
}
ajax.send(null);
}
}
if ($nrows>0){
for ($i=0;$i<$nrows;$i++){
echo "";
}
}
?>
iniajax.js:
function InitAjax()
{
var ajax=false;
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
ajax = false;
}
}
if (!ajax && typeof XMLHttpRequest!='undefined') {
ajax = new XMLHttpRequest();
}
return ajax;
}
getoption.php:
if($pid=$_GET["pid"])
{
header("Content-type: text/xml;charset=GB2312");
echo "";
include("./oracle.inc");
$sql="select * from AJAXTEST where PARENTID = $pid";
//echo $sql;
$stmt=ociparse($handle,$sql);
ociexecute($stmt);
ocicommit($handle);
ocilogoff();
$nrows=ocifetchstatement($stmt,$results);
echo "";
//echo "{$nrows}
";
for ($i=0;$i<$nrows;$i++){
echo "";
echo "{$results[ID][$i]}";
echo "{$results[NAME][$i]}";
echo "";
}
echo "";
}
?>