我有两个组合框。第一个有状态名称我从数据库中检索数据,第二个必须到该特定状态的区域。我需要的是第一个combobox.data中的数据onchange在第二个也应该改变。我的代码。
<select name="district" id="district" onchange="showcomplain()">
<?php
$query="SELECT * FROM `rev_district_master`";
$result=mysql_query($query) or die("Selection query of District Master is Error".mysql_error());
$num = mysql_numrows($result);
while($row=mysql_fetch_row($result))
{
?>
<option value="<?php echo $row[1];?>"><?php echo $row[1];?></option>
<?php
}
?>
This is my ajax file:
function stateComboChange(){
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}else{
var url="./ajax/list1.php";
xmlHttp.onreadystatechange=stateChanged1 ;
xmlHttp.open("POST",url,true);
xmlHttp.send(null) ;
}
}
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;
}
function stateChanged1()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
document.getElementById("stateCombo").innerHTML=xmlHttp.responseText; }
}
答案 0 :(得分:2)
通过改变状态的ajax调用来实现
function changeCombo(){
var statename=document.getElementByid('state_combo_box').value;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 )
{
if(xmlhttp.status==200)
{
var data=JSON.parse(xmlhttp.responseText);
for(var index= 0;index<data.length;index++)
{
var combo=document.getElementById('district');
combo.options[combo.options.length] = new Option(districtname, value);
}
}
}
}
xmlhttp.open("GET","some_php_file_which_echos_data.php",true);
xmlhttp.send(statename);
}
}
很抱歉,我不知道你如何命名你的DOM元素,而是替换文件和id名称
答案 1 :(得分:0)
第二个组合框的数据在哪里?...我没看到这个代码。
您可以对数据库使用AJAX请求并在回调时更改de数据。