Ich habe ein feld mit ner Plz beim klick auf ein Button aoll in einer DB die passende Gemeinde gesucht werden und ins Formular eingetragen werden.
Mfg Maffy
PHP-Code:
// Gemeindedaten holen und in Formular schreiben
function getgemeinde(form){
var MYPLZ = form.plz.value;
var xmlHttp;
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null){
alert ("Ihr Browser unterstützt kein AJAX")
return
}
var url="searchgemeinde.php"
url=url+"&plz="+MYPLZ
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
function stateChanged()
{
// Antwort angekommen?
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
// Antwort akzeptabel?
if (xmlHttp.status == 200) {
// Antwort speichern
var gemeindeXML = xmlHttp.respon************ML;
// Über alle <land>-Tags im DOM-Baum iterieren
var gdaten = gemeindeXML.getElementsByTagName("ort");
for (i = 0; i < gdaten.length; i++) {
var id = gdaten[i].getAttribute("id")[0].firstChild.nodeValue;
var plz = gdaten[i].getAttribute("plz")[0].firstChild.nodeValue;
var gemeindename = gdaten[i].getAttribute("gemeinde")[0].firstChild.nodeValue;
form.mygemeinde.value = gemeindename;
}
// ENDE Antwort akzeptabel?
}
// ENDE Antwort angekommen?
}
}
// Ajax-Anfrage-Objekt erzeugen
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;
}
}
PHP-Code:
header("Content-Type: text/xml; charset=utf-8");
$gemeinden .= "<gemeinden>";
// Request rückgabe
//$_REQUEST["plz"] ="97708";
$plz = $_REQUEST["plz"];
// SQL-Abfrage
$query = mysql_query("SELECT ID,PLZ,GEMEINDE,BUNDESLAND,KREIS FROM ".ORTE_TABLE." WHERE PLZ = ".$_REQUEST["plz"]." LIMIT 0,1");
if(!$query) die(" ".__LINE__." <hr>".$query."<hr>".mysql_error()."<hr> ");
// Daten aus der Datenbank lesen
while ($row = mysql_fetch_array($query)) {
// als <land>-Element in den XML-Code schreiben
$eintrag = "<ort>";
$eintrag .= "<id>".$row["ID"]."</id>";
$eintrag .= "<plz>".$row["PLZ"]."</plz>";
$eintrag .= "<gemeinde>".utf8_encode($row["GEMEINDE"])."</gemeinde>";
$eintrag .= "<bundesland>".utf8_encode($row["BUNDESLAND"])."</bundesland>";
$eintrag .= "<kreis>".utf8_encode($row["KREIS"])."</kreis>";
$eintrag .= "</ort>";
$gemeinden .= $eintrag;
}
// Schließendes </laender>-Tag
$gemeinden .= "</gemeinden>";
echo $gemeinden;
Kommentar