php ajax下拉框动态联动问题
---------------------index.php-------------------------前端页面<tdnowrapclass="TableData"...
---------------------index.php-------------------------前端页面
<td nowrap class="TableData">地区: </td>
<td nowrap class="TableData">
<select name="PROVIDER_AREA" id="PROVIDER_AREA" class="BigSelect" onChange="selectCity(this.options[this.selectedIndex].value);">
<option value="-1">请选择地区</option>
<?php
//这里是循环获取数据库中的省份信息
$plist=mysql_query("select id,province from province where 1=1");
if(!mysql_num_rows($plist)){
echo '<option value="0">省份信息获取失败</option>';
exit();}
else{
while($p=mysql_fetch_array($plist)){
echo '<option value="'.$p[id].'">'.$p[province].'</option>';}}
?>
</select>
<td nowrap class="TableData">
<select name="city" id="city" class="BIGSELECT">
<option value="-1">请选择城市</option>
</select></td>
---------------------selectp_c.js-------------------------
var xmlHttp;
//取xmlhttprequest对象
function GetXmlHttpObject(){
var xmlHttp=null;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
//处理省份id,selP是获取到的省份id
function selectCity(selP){
var cObj=document.getElementById('city');//取网页中id为city的容器对象
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null){
alert ("您的浏览器不支持AJAX!");
return false;
}
//判断确实选择到了省份值
if(selP!=''&&selP!=null&&selP!=0&&selP!=-1){
//将省份id值提交chkpc.php
xmlHttp.open('GET','chkpc.php?p='+selP,true);
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState!=4){
cObj.innerHTML= '<option value="loading">loading……</option>';
}
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
//将从chkpc中获取到的输出值写入网页中id为city的对象容器
cObj.innerHTML=xmlHttp.responseText;
alert(cObj.innerHTML);
}
}
}
xmlHttp.send(null);
}
else{
cObj.innerHTML='';
//alert('请重新选择省份!');
return false;
}
}
--------------------chkpc.php-----------------------与数据库交互页面
<?php
include_once("inc/conn.php");
include_once("inc/utility.php");
include_once("inc/utility_all.php");
//链接数据库文件
$p=strtolower(trim($_GET['p']));
//处理字符
$chkc=mysql_query("select * from city where pid=$p");
//执行mysql查询
//这里判断是否有数据
if(!mysql_num_rows($chkc)){
echo '<select name="city" class="BigSelect"><option value="-1">该省下暂无市级信息</option></select>';
exit();
}
else{
//echo '<select name="city" class="BigSelect">';
while($c=mysql_fetch_array($chkc)){
echo '<option value="'.$c[id].'">'.$c[city].'</option>';
}
//echo '</select>';
}
mysql_close();
?>
为什么我的“城市”下来框没有联动值。
我把从chkpc.php传给ajax的值输出了一下,如图:
最前面的<option ...> 没有了,是不是这有错误?问题在哪? 展开
<td nowrap class="TableData">地区: </td>
<td nowrap class="TableData">
<select name="PROVIDER_AREA" id="PROVIDER_AREA" class="BigSelect" onChange="selectCity(this.options[this.selectedIndex].value);">
<option value="-1">请选择地区</option>
<?php
//这里是循环获取数据库中的省份信息
$plist=mysql_query("select id,province from province where 1=1");
if(!mysql_num_rows($plist)){
echo '<option value="0">省份信息获取失败</option>';
exit();}
else{
while($p=mysql_fetch_array($plist)){
echo '<option value="'.$p[id].'">'.$p[province].'</option>';}}
?>
</select>
<td nowrap class="TableData">
<select name="city" id="city" class="BIGSELECT">
<option value="-1">请选择城市</option>
</select></td>
---------------------selectp_c.js-------------------------
var xmlHttp;
//取xmlhttprequest对象
function GetXmlHttpObject(){
var xmlHttp=null;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
//处理省份id,selP是获取到的省份id
function selectCity(selP){
var cObj=document.getElementById('city');//取网页中id为city的容器对象
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null){
alert ("您的浏览器不支持AJAX!");
return false;
}
//判断确实选择到了省份值
if(selP!=''&&selP!=null&&selP!=0&&selP!=-1){
//将省份id值提交chkpc.php
xmlHttp.open('GET','chkpc.php?p='+selP,true);
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState!=4){
cObj.innerHTML= '<option value="loading">loading……</option>';
}
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
//将从chkpc中获取到的输出值写入网页中id为city的对象容器
cObj.innerHTML=xmlHttp.responseText;
alert(cObj.innerHTML);
}
}
}
xmlHttp.send(null);
}
else{
cObj.innerHTML='';
//alert('请重新选择省份!');
return false;
}
}
--------------------chkpc.php-----------------------与数据库交互页面
<?php
include_once("inc/conn.php");
include_once("inc/utility.php");
include_once("inc/utility_all.php");
//链接数据库文件
$p=strtolower(trim($_GET['p']));
//处理字符
$chkc=mysql_query("select * from city where pid=$p");
//执行mysql查询
//这里判断是否有数据
if(!mysql_num_rows($chkc)){
echo '<select name="city" class="BigSelect"><option value="-1">该省下暂无市级信息</option></select>';
exit();
}
else{
//echo '<select name="city" class="BigSelect">';
while($c=mysql_fetch_array($chkc)){
echo '<option value="'.$c[id].'">'.$c[city].'</option>';
}
//echo '</select>';
}
mysql_close();
?>
为什么我的“城市”下来框没有联动值。
我把从chkpc.php传给ajax的值输出了一下,如图:
最前面的<option ...> 没有了,是不是这有错误?问题在哪? 展开
展开全部
哥们,你这个不好用,我给你个好用的
追问
好啊,谢谢啊,416671186@qq.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有返回值没?
更多追问追答
追问
有返回值,我输出了一下,但是最前面一条城市记录的 没有
追答
你为什么不选择jquery呢,
至少不必要写那么多,
在第一个
function getCity(){
$.get('请求地址',参数,function(data){
$('#city').html(data);
});
}
你返回data的值是怎样的?/?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询