Hi friends,
I created simple drop down box in php and ajax that second dropdownbox is depend by first dropdownbox,this is perfectly working in IE and opera but not working in mozzila, i just give the code below please help me to work in mozzila browser also,
// my index page - index.php
<html>
<head>
<script src="responsexml.js"></script>
</head>
<body>
<form>
Select a Country:
<select name="users" onChange="showUser()"> // first dropdown & calling js on onchange
<option value="0">Select Country</option>
<option value="1">INDIA</option>
<option value="2">USA</option>
<option value="3">CANADA</option>
</select>
<select name="DropDownList1" id="DropDownList1"> //secong dropdown
</select>
</form>
</body>
</html>
// my javascrit file - responsexml.js
var xmlHttp;
function GetXmlHttpObject()
{
var objXMLHttp=null;
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}
function showUser()
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="responsexml.php";
var str1=document.getElementById("users").value;
url=url+"?q="+str1;
url=url+"&sid="+Math.random();
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=AssignCity;
xmlHttp.send(null);
}
function AssignCity()
{
RemoveAllDrpItems('DropDownList1');
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
var CityList=xmlHttp.responseXML.getElementsByTagName("country")[0];
var ele = document.getElementById("DropDownList1");
for(var i=0;i<CityList.childNodes.length;i++)
{
var option=document.createElement('option');
var rec1=CityList.childNodes;
var str1=rec1.childNodes[0].nodeValue;
option.value=str1;
option.text=str1;
ele.add(option); // adding option to second dropdownbox
}
}
}
function RemoveAllDrpItems(rid) // removing previous items in second dropdown
{
var objDrpList = document.getElementById (rid);
for(var i=objDrpList.length-1; i>=0; i--)
{
objDrpList.options = null;
}
}
// php file for generating xml - responsexml.php
<?php
header('Content-Type: text/xml');
$q=$_GET["q"];
$con = mysql_connect('localhost', 'root', '');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db", $con);
$sql="SELECT * FROM city WHERE id = $q";
$result = mysql_query($sql);
echo '<?xml version="1.0" encoding="ISO-8859-1"?>
<country>';
while($row = mysql_fetch_array($result))
{
echo "<cityname>" . $row['CityName'] . "</cityname>";
}
echo "</country>";
mysql_close($con);
?>
// advance thanks
[/b][/code][/quote]