1
Hallo zusammen,
ich bin ich in Sachen AJAX absoluter Frischling und stehe vor dem für mich aktuell noch unlösbaren Problem ein ajax Script zu erweitern.
Diese Script bewirkt, dass in drei DropDown-Feldern (Land/Staat/Stadt) der jeweils passende Datensatz anchgeladen wird (also bei Deutschland-> Bayern eben alle Städte in Bayern). Nun muss dieses Script um eine "Ebene" tiefer namens "Universitäten" erweitert werden und ich habe absolut keine Ahnung wie ich das machen soll.Die SQL-Funktion kriege ich hin.
Anbei das Script. Ist sicherlich für ajax-Profis kein Problem. :)
ich bin ich in Sachen AJAX absoluter Frischling und stehe vor dem für mich aktuell noch unlösbaren Problem ein ajax Script zu erweitern.
Diese Script bewirkt, dass in drei DropDown-Feldern (Land/Staat/Stadt) der jeweils passende Datensatz anchgeladen wird (also bei Deutschland-> Bayern eben alle Städte in Bayern). Nun muss dieses Script um eine "Ebene" tiefer namens "Universitäten" erweitert werden und ich habe absolut keine Ahnung wie ich das machen soll.Die SQL-Funktion kriege ich hin.
Anbei das Script. Ist sicherlich für ajax-Profis kein Problem. :)
<script language="JavaScript">
<!--
function HS_StatesPopulate(FormHandler,AllowEmpty)
{
for(var k = FormHandler.student_state.options.length-1; k>=0; k--)
{
FormHandler.student_state.options[k] = null;
}//for
for(var k = FormHandler.student_city.options.length-1; k>=0; k--)
{
FormHandler.student_city.options[k] = null;
}//for
FormHandler.student_state.options[0] = new Option("...Daten werden geladen...");
FormHandler.student_city.options[0] = new Option("...Daten werden geladen...");
var Country = FormHandler.student_country.options[FormHandler.student_country.selectedIndex].value;
var xmlHttpReq = false;
var self = this;
// Mozilla/Safari
if (window.XMLHttpRequest)
{
self.xmlHttpReq = new XMLHttpRequest();
}//if
// IE
else if (window.ActiveXObject)
{
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}//else if
self.xmlHttpReq.open('POST', "index.php", true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function()
{
if (self.xmlHttpReq.readyState == 4 && self.xmlHttpReq.status == 200)
{
HS_PullData(self.xmlHttpReq.responseXML,FormHandler.student_state,'state');
HS_PullData(self.xmlHttpReq.responseXML,FormHandler.student_city,'city');
}//if
}//function
self.xmlHttpReq.send("handler=geo&action=states&country="+Country+"&allow_empty="+AllowEmpty);
}//HS_StatesPopulate
function HS_CitiesPopulate(FormHandler,AllowEmpty)
{
for(var k = FormHandler.student_city.options.length-1; k>=0; k--)
{
FormHandler.student_city.options[k] = null;
}//for
FormHandler.student_city.options[0] = new Option("...Daten werden geladen...");
var Country = FormHandler.student_country.options[FormHandler.student_country.selectedIndex].value;
var State = FormHandler.student_state.options[FormHandler.student_state.selectedIndex].value;
var xmlHttpReq = false;
var self = this;
// Mozilla/Safari
if (window.XMLHttpRequest)
{
self.xmlHttpReq = new XMLHttpRequest();
}//if
// IE
else if (window.ActiveXObject)
{
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}//else if
self.xmlHttpReq.open('POST', "index.php", true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function()
{
if (self.xmlHttpReq.readyState == 4 && self.xmlHttpReq.status == 200)
{
HS_PullData(self.xmlHttpReq.responseXML,FormHandler.student_city,'city');
}//if
}//function
self.xmlHttpReq.send("handler=geo&action=cities&&country="+Country+"&state="+State+"&allow_empty="+AllowEmpty);
}//HS_CitiesPopulate
function HS_PullData(XMLData,FieldHandler,ItemName)
{
for(var k = FieldHandler.options.length-1; k>=0; k--)
{
FieldHandler.options[k] = null;
}//for
var Items = XMLData.getElementsByTagName(ItemName);
for(var i=0;i<Items.length;i++)
{
var ItemID = Items[i].firstChild.firstChild.nodeValue;
var ItemName = Items[i].firstChild.nextSibling.firstChild.nodeValue;
FieldHandler.options[i] = new Option(ItemName,ItemID);
}//for
}//HS_PullData
//-->
</script>