miezekathi
New member
Liebe Forummitglieder,
ich habe ein Suchfeld erstellt, worin man nach Postleitzahlen suchen kann. Im Hintergrund wird eine CSV-Datei aufgerufen, die alle Adressdaten zu den jeweiligen Postleitzahlen beinhaltet.
Das Array wird richtig ausgegeben aber irgendwas hab ich bei der Suchfunktion "PLZSearch" falsch. Ich komm einfach nicht drauf. Die Konsole sagt "TypeError: result.split is not a function". Bin leider kein Javascript-Profi und hoffe ihr könnt mir weiterhelfen.
Link: PLZ Suchmaske
Vielen Dank im Voraus und lG,
mieze
ich habe ein Suchfeld erstellt, worin man nach Postleitzahlen suchen kann. Im Hintergrund wird eine CSV-Datei aufgerufen, die alle Adressdaten zu den jeweiligen Postleitzahlen beinhaltet.
Das Array wird richtig ausgegeben aber irgendwas hab ich bei der Suchfunktion "PLZSearch" falsch. Ich komm einfach nicht drauf. Die Konsole sagt "TypeError: result.split is not a function". Bin leider kein Javascript-Profi und hoffe ihr könnt mir weiterhelfen.
Code:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PLZ Suchmaske</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
//CSV lesen
function asyncCsv2Array(fileName, separator, callback) {
// Datei einlesen (benötigt JQuery)
$.get(fileName, function(fileContent){
// Array für Ergebnis
var result = [];
// Eingelesenen Text in ein Array splitten (\r\n, \n und\r sind die Trennzeichen für verschiedene Betriebssysteme wie Windows, Linux, OS X)
var textArray = fileContent.split(/(\r\n|\n|\r)/gm);
// Über alle Zeilen iterieren
for (var i = 0; i < textArray.length; i++) {
// Nur wenn die Größe einer Zeile > 1 ist (sonst ist in der Zeile nur das Zeilenumbruch Zeichen drin)
if (textArray[i].length > 1) {
// Zeile am Trennzeichen trennen
var elementArray = textArray[i].split(separator);
// überflüssiges Element am Ende entfernen - nur notwendig wenn die Zeile mit dem Separator endet
elementArray.splice(elementArray.length - 1, 1);
// Array der Zeile dem Ergebnis hinzufügen
result.push(elementArray);
} // Ende if
} // Ende for
callback(result);
}); // Ende von $.get Aufruf
} // Ende function asyncCsv2Array
// Beispielaufruf
asyncCsv2Array("data.csv", ";", function(result) {
console.log(result);
// Ausgabe von "PLZ"
// console.log(result[0][0]);
// Ausgabe von "ORT"
// console.log(result[0][1]);
});
// var DB = new Array();
// function MakeDB() {
// DB = result.split(';');
// }
function PLZSearch(Plz) {
var posn = -1;
for (i=0; i<result.length; i++) {
tmp = result[i].split(';');
if (tmp.indexOf(Plz) != -1) { posn = i; break; }
}
if (posn == -1) { alert('Postleitzahl kann nicht gefunden werden'); }
else { document.getElementById('TArea').value = result[posn]; }
}
</script>
</head>
<body>
<div id="container">
<p><b>Suchen Sie den Experten in Ihrer Nähe</b></p>
<p>
<input type="text" value="" id="PLZ" name="inputfeld">
<input type="button" value="Suchen" onclick="PLZSearch(document.getElementById('PLZ').value)">
</p>
<br>
<textarea id="TArea" rows="3" cols="50"></textarea>
</div>
</body>
</html>
Link: PLZ Suchmaske
Vielen Dank im Voraus und lG,
mieze