Hi Jungs, hat sich schon mal jemand Gedanken darüber gemacht dass es einfacher wäre wenn man nur beim einstellen eines Inserates die Postleitzahl eingeben muss und die Stadt und das Bundesland automatisch eingtragen werden???
Siehe Script......
?php
$datei = "postleitzahlen2.csv";
$f = fopen($datei, "r");
$plz_verzeichnis = array();
$keys = array("id", "plz", "ort", "kreisschluessel", "kreis", "laenderschluessel", "bundesland");
while($line = fgetcsv($f, 0, ";")){
/*
* Die einzelnen Zeilenarrays in einem Array speichern. Jedes Zeilenarray
* bekommt noch die Schlüssel ($keys) für die Spalten zugewiesen
*/
$plz_verzeichnis[] = array_combine($keys, $line);
}
fclose($f);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ortssuche mit PLZ</title>
<script src="jquery-1.10.1.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
var plz_verzeichnis = <?php echo json_encode($plz_verzeichnis);?>;
// -->
</script>
</head>
<body>
<form action="" method="post" name="frm">
<p>PLZ <input type="text" name="plz" id="plz"/>
Ort <select name="sel_ort" id="sel_ort">
</select>
</p>
<p><input type="submit" name="cmd"/></p>
</form>
<script type="text/javascript">
<!--
var length = 0;
$(document).ready(function() {
/*
* Nach Eingabe ins Textfeld (Taste wurde gedrückt) alle bisherigen, gefundenen Orte aus dem Select entfernen
*/
$("#plz").keydown(function(){
$("option").remove();
});
/*
* Nach Eingabe einer Zahl (Taste wurde losgelassen) wird die Stringlänge im Textfeld ermittelt
* Die Stringlänge wird für die Funktion substr gebraucht
*/
$("#plz").keyup(function() {
length = document.frm.plz.value.length;
if(length == 0){return;}
var index = 0;
/*
* Das Postleitzahlenverzeichnis durchsuchen. Gefunden werden alle Einträge, die mit den bisher
* eingegebenen Zahlen übereinstimmen. Anschließend wird das Option-Feld erzeugt und ans Select angehangen
* Die Suche im Postleitzahlenverzeichnis beginnt nach Eingabe der zweiten Zahl (length > 1)
*
*/
if(length > 1){
$.each(plz_verzeichnis, function(){
if(length == 0){return;}
if(plz_verzeichnis[index]['plz'].substr(0,length) == document.frm.plz.value){
var option = "<option >" plz_verzeichnis[index]['plz'] " / " plz_verzeichnis[index]['ort'] " / " plz_verzeichnis[index]['kreis'] " / " plz_verzeichnis[index]['bundesland'] "</option>";
$(option).appendTo("#sel_ort");
}
index ;
});
}
});
});
// -->
</script>
<?php
if(isset($_POST['sel_ort'])){
$adresse = array();
$keys = array("PLZ", "Ort", "Kreis/Stadt", "Bundesland");
$adresse = array_combine($keys, explode("/", $_POST['sel_ort']));
echo "<pre>";
print_r($adresse);
}else{
echo "Wählen sie nach Eingabe der PLZ einen Ort aus!";
}
?>
</body>
</html>
Wenn sich jemand damit auskennt bitte melden....