永发信息网

AJAX关于三级联动的问题!

答案:1  悬赏:0  手机版
解决时间 2021-02-09 15:53
  • 提问者网友:抽煙菂渘情少年
  • 2021-02-09 12:42
这里我是取回数据库的ajax返回值,是XML格式的,上代码:

var ajax = null;

function getCity(province_id){

ajax = createAjax();

ajax.onreadystatechange=function(){

if(ajax.readyState == 4){

if(ajax.status == 200){

var cities = ajax.responseXML.getElementsByTagName("city");

$('city').length = 0;

var myoption = document.createElement("option");

myoption.value = "";

myoption.innerText = "--请选择城市--";

$('city').appendChild(myoption);

for(var i=0;i
var city_id = cities[i].childNodes[0].childNodes[0].nodeValue;

var city_name = cities[i].childNodes[1].childNodes[0].nodeValue;

var myoption = document.createElement("option");

myoption.value = city_id;

myoption.innerText = city_name;

$('city').appendChild(myoption);

}

}

}

}

ajax.open("post","selectPro.php",true);

ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

ajax.send("province_id="+province_id);
这里是AJAX页面的代码

PHP页面代码如下:
if(!empty($_POST['province_id'])){

$province_id = $_POST['province_id'];
$sql = "select * from shi where yid = $province_id";
$query = mysql_query($sql);
$info = "";
echo $info;
}

我就是搞不清楚为什么要加select这个XML节点,才能返回AJAX的值?拿掉就返回不了值了。这里的不就相当于是html1的我的理解是不是有问题?麻烦大神指引下,感激不敬!
最佳答案
  • 五星知识达人网友:往事埋风中
  • 2021-02-09 13:52
恩! 代码看了头晕就不看了,给你说下思路,首先第一个 第二个 select 上都添加onchange 改变事件.
事件触发一个函数

这个函数内部 包含
变量获取当前select的值
AJAX声明
AJAX传送值到后台

<后台部分>
后台获取值并根据值了SQL 值的子级
并循环子级,生成一段字符串,或者对于select下option 现成代码,或者json等等
echo输出 字符串
<后台部分>

AJAX获取 输出字符串
innerHTML 改变对于的下一级select

测试可以分段测试
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯