Hallo!
Ich würde gerne synchron zur Eingabe der Postleitzahl in einem Formular den entsprechenden Stadtnamen raussuchen und in einem Textfeld wiedergeben lassen (ähnliches findet sich beispielsweise bei
www.billigflieger.de). Da ich keine Möglichkeit habe, soetwas per JSP oder ASP zu programmieren bzw laufen zu lassen (Webspace gibts nicht her), versuche ichs per JS und PHP (was anscheinend eine sehr wackelige Angelegenheit ist). Ich habs wie folgt versucht einzubinden:
Formular:
HTML-Code:
<form id="form1" name="form1" method="post" action="">
<input name="plz" type="text" id="plz" maxlength="5"/>
<input name="Submit" type="button" id="stadt_button" value="Stadt suchen" onClick="Stadt()"/>
<input name="stadt" type="text" disabled="disabled" id="stadt"/>
</form>
JS:
HTML-Code:
<script language="javascript">
function Stadt(){
var plz;
var stadtname;
plz = document.getElementById("plz").value;
document.write('<script type="text/javascript" src="script/testdatei.php?plz=' + plz + '"><\/script>');
document.close();
}
</script>
und PHP (testdatei.php):
PHP-Code:
<?php
@include ("../script/sql.php");
$fields[0] = "Ort";
$where[0] = "PLZ";
$where[1] = $_GET["plz"];
$tablename = "postleitzahlen";
$form_resID = get_data_tb($fields,$tablename,$where,0);
while ($array= @mysql_fetch_array($form_resID,MYSQL_BOTH)){
echo 'document.getElementById("stadt").value = "'.$array["Ort"].'";';
}
?>
Das erste Problem liegt darin, dass die in Js vom PHP-Skript ausgegebene Fkt
(Bei der Eingabe von 10437 beispielsweise, wäre die stadt Berlin)
HTML-Code:
document.getElementById("stadt").value = "Berlin";
das textfeld stadt mit der Fehlermeldung
Zitat:
Fehler: document.getElementById("stadt") has no properties
|
wohl nicht ansprechbar ist...
Des Weiteren wird durch document.write immer die gesamte Seite neu geladen, was ohne document.close() dazu führt, dass der Browser sich zutode quält oder aber mit document.close() das Formular nicht wieder mit ausgibt...
Ist obiger Quellcode noch zu retten, sollte ich ganz verzichten oder mich doch lieber mit AJAX, JSP, ASP o.ä. befassen (was allerdings, vor allem bei dem Gedanken an die Kosten kein Verhältnis zum Ziel darstellt...).