/    Sign up×
Community /Pin to ProfileBookmark

AJAX script not working in IE

Hi!
I am using a script to change dynamically the values of a second drop-down menu, based on the selected value from a first drop-down menu. For this purpose I use a HTML file with a <select></select> field, which onChange performs an AJAX request to a PHP script, which returns the values for the second Javascript menu. The whole thing is working perfectly in Firefox and Googlechrome, but on IE – NOT. Here goes my code:

[CODE]<html>
<head>
<style type=”text/css”>
body{
background-repeat:no-repeat;
font-family: Trebuchet MS, Lucida Sans Unicode, Arial, sans-serif;
height:100&#37;;
background-color: #FFF;
margin:0px;
padding:0px;
}
select{
width:150px;
}
</style>
<script type=”text/javascript” src=”ajax.js”></script>
<script type=”text/javascript”>
/************************************************************************************************************
Ajax chained select
Copyright (C) 2006 DTHMLGoodies.com, Alf Magne Kalleland

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
written by Alf Magne Kalleland.

Alf Magne Kalleland, 2006
Owner of DHTMLgoodies.com

************************************************************************************************************/
var ajax = new Array();

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){
var index = ajax.length;
ajax[index] = new sack();

ajax[index].requestFile = ‘getCities.php?countryCode=’+countryCode; // Specifying which file to get
ajax[index].onCompletion = function(){ createCities(index) }; // Specify function that will be executed after file has been found
ajax[index].runAJAX(); // Execute AJAX function
}
}

function createCities(index)
{
var obj = document.getElementById(‘dhtmlgoodies_city’);
eval(ajax[index].response); // Executing the response from Ajax as Javascript code
}

function getSubCategoryList(sel)
{
var category = sel.options[sel.selectedIndex].value;
document.getElementById(‘dhtmlgoodies_subcategory’).options.length = 0; // Empty city select box
if(category.length>0){
var index = ajax.length;
ajax[index] = new sack();

ajax[index].requestFile = ‘getSubCategories.php?category=’+category; // Specifying which file to get
ajax[index].onCompletion = function(){ createSubCategories(index) }; // Specify function that will be executed after file has been found
ajax[index].runAJAX(); // Execute AJAX function
}
}
function createSubCategories(index)
{
var obj = document.getElementById(‘dhtmlgoodies_subcategory’);
eval(ajax[index].response); // Executing the response from Ajax as Javascript code
}
</script>

</head>
<body>
<form action=”” method=”post”>
<table>
<tr>
<td>Country: </td>
<td><select id=”dhtmlgoodies_country” name=”dhtmlgoodies_country” onchange=”getCityList(this)”>
<option value=””>Select a country</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>
<tr>
<td colspan=”2″><b>Second example</b></td>
</tr>
<tr>
<td>Category: </td>
<td><select id=”dhtmlgoodies_category” name=”dhtmlgoodies_category” onchange=”getSubCategoryList(this)”>
<option value=””>Select a category</option>
<option value=”1″>Cars</option>
<option value=”2″>Boats</option>
<option value=”3″>Airplanes</option>
</select>
</td>
</tr>
<tr>
<td>Sub category: </td>
<td><select id=”dhtmlgoodies_subcategory” name=”dhtmlgoodies_subcategory”>

</select>
</td>
</tr>
</table>
</form>

</body>
</html>

[/CODE]

This is the ajax.js content : [url]http://www.dhtmlgoodies.com/AJAX/ajax.js[/url]
This is the PHP script:

[code=php]<?php

if(isset($_GET[‘countryCode’])){

switch($_GET[‘countryCode’]){

case “no”:
echo “obj.options[obj.options.length] = new Option(‘Bergen’,’1′);n”;
echo “obj.options[obj.options.length] = new Option(‘Haugesund’,’2′);n”;
echo “obj.options[obj.options.length] = new Option(‘Oslo’,’3′);n”;
echo “obj.options[obj.options.length] = new Option(‘Stavanger’,’4′);n”;

break;
case “dk”:

echo “obj.options[obj.options.length] = new Option(‘Aalborg’,’11’);n”;
echo “obj.options[obj.options.length] = new Option(‘Copenhagen’,’12’);n”;
echo “obj.options[obj.options.length] = new Option(‘Odense’,’13’);n”;

break;
case “us”:

echo “obj.options[obj.options.length] = new Option(‘Atlanta’,’21’);n”;
echo “obj.options[obj.options.length] = new Option(‘Chicago’,’22’);n”;
echo “obj.options[obj.options.length] = new Option(‘Denver’,’23’);n”;
echo “obj.options[obj.options.length] = new Option(‘Los Angeles’,’24’);n”;
echo “obj.options[obj.options.length] = new Option(‘New York’,’25’);n”;
echo “obj.options[obj.options.length] = new Option(‘San Fransisco’,’26’);n”;
echo “obj.options[obj.options.length] = new Option(‘Seattle’,’27’);n”;

break;
}
}

?>[/code]

Do you have any idea how can I get this workng in IE? I have already spent hours reading about it in forums and I still can not find the proper solution. 10x in advance.

to post a comment
JavaScript

1 Comments(s)

Copy linkTweet thisAlerts:
@pastet89authorJan 23.2010 — Anybody?
×

Success!

Help @pastet89 spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.16,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...