Mam skrypt, który działa pod przweglądarkami jedynie IE jest oporny i nie wyswietla katagorii.
Gdzie jest błąd ?
Plik index.php:
<?php
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript">
var ajax = new sack();
function getCityList(sel)
{
var countryCode = sel.options[sel.selectedIndex].value;
document.getElementById('dhtmlgoodies_city').options.length = 0; // Empty city select box
if(countryCode.length>0){
ajax.requestFile = 'getCities.php?countryCode='+countryCode; // Specifying which file to get
ajax.onCompletion = createCities; // Specify function that will be executed after file has been found
ajax.runAJAX(); // Execute AJAX function
}
}
function createCities()
{
var obj = document.getElementById('dhtmlgoodies_city');
eval(ajax
.response
); // Executing the response from Ajax as Javascript code }
</script>
<form action="" method="post">
<table> <tr> <td>Country: </td>
<td><select id="dhtmlgoodies_country" name="dhtmlgoodies_country" onchange="getCityList(this)">
<option value="">Select</option>
<option value="dk">Denmark</option>
<option value="no">Norway</option>
<option value="us">US</option>
</select>
</td> </tr><tr><td>City: </td>
<td><select id="dhtmlgoodies_city" name="dhtmlgoodies_city">
</select>
</td> </tr></table></form>
?>
Plik getCities.php:
<?php
if(isset($_GET['countryCode'])){
switch($_GET['countryCode']){
case "no":
echo "obj.options[obj.options.length] = new Option('Bergen','1'); ";
echo "obj.options[obj.options.length] = new Option('Haugesund','2'); ";
echo "obj.options[obj.options.length] = new Option('Oslo','3'); ";
echo "obj.options[obj.options.length] = new Option('Stavanger','4'); ";
break;
case "dk":
echo "obj.options[obj.options.length] = new Option('Aalborg','11'); ";
echo "obj.options[obj.options.length] = new Option('Copenhagen','12'); ";
echo "obj.options[obj.options.length] = new Option('Odense','13'); ";
break;
case "us":
echo "obj.options[obj.options.length] = new Option('Atlanta','21'); ";
echo "obj.options[obj.options.length] = new Option('Chicago','22'); ";
echo "obj.options[obj.options.length] = new Option('Denver','23'); ";
echo "obj.options[obj.options.length] = new Option('Los Angeles','24'); ";
echo "obj.options[obj.options.length] = new Option('New York','25'); ";
echo "obj.options[obj.options.length] = new Option('San Fransisco','26'); ";
echo "obj.options[obj.options.length] = new Option('Seattle','27'); ";
break;
}
}
?>
Należy jeszcze wgrać
plik AJAX.js