Hallo,
ich habe ein Autocomplete -Feld (startstrasse), dem das Autocomplete-Feld startort "zugewiesen" wird. D.h. in dem Autocomplete "startstrasse" sollen nur die Strassen angezeigt werden, die es auch in dem Ort gibt.
Das Autocomplete für den Ort läuft über ein Input type=text per Ortsname oder PLZ.
searchB.php
Nun um den Ort und die PLZ mit einzubeziehen (Daten werden in die URL geschrieben und übermittelt)
available.php (extra noch mit MySQL geschrieben, um es für mich noch ziemlich einfach zu halten und meinen Fehler zu finden)
Wie bekomme ich es jetzt hin, das die Auswahl aus aus available.php als Autocomplete erscheint?
Ich finde da meinen Fehler nicht - bin aber auch was JS angeht ein Noob.
Vielen Dank.
Ein vergleichbares Posting steht auch auf php.de
Allerdings ging es dort um eine ganz andere Thematik und wird nicht mehr beantwortet (kein crossposting)
ich habe ein Autocomplete -Feld (startstrasse), dem das Autocomplete-Feld startort "zugewiesen" wird. D.h. in dem Autocomplete "startstrasse" sollen nur die Strassen angezeigt werden, die es auch in dem Ort gibt.
Das Autocomplete für den Ort läuft über ein Input type=text per Ortsname oder PLZ.
Javascript:
$(function() {
$( "#startplz" ).autocomplete({
source: 'searchB.php'
});
});
HTML:
<input type=text name=startplz placeholder="PLZ oder Ort" id=startplz required size=30 style="-moz-border-radius: 5px; -webkit-border-radius: 5px; border: #FE642E solid 1px;">
searchB.php
PHP:
define('DB_SERVER', 'localhost');
define('DB_USER', '***');
define('DB_PASSWORD', '***');
define('DB_NAME', '***');
if (isset($_GET['term'])){
$return_arr = array();
try {
$conn = new PDO("mysql:host=".DB_SERVER.";port=8889;dbname=".DB_NAME, DB_USER, DB_PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT DISTINCT plz,ortsname FROM plz_ort_strassen WHERE plz LIKE :term OR ortsname LIKE :term');
$stmt->execute(array('term' => '%'.$_GET['term'].'%'));
while($row = $stmt->fetch()) {
$return_arr[] = $row['plz']." ".$row['ortsname'];
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
echo json_encode($return_arr);
}
Nun um den Ort und die PLZ mit einzubeziehen (Daten werden in die URL geschrieben und übermittelt)
Javascript:
$(function(){
$('#startstrasse').keyup(function(){
var startplz = document.getElementById("startplz").value;
//var startstrasse = document.getElementById("startstrasse").value;
var startplz = startplz.replace(" ", "_");
if(startstrasse.length>3)
{
var startstrasse = document.getElementById("startstrasse").value;
//alert(''+startplz+'');
//alert(''+startstrasse+'');
var Result = $('#result');
var dataPass = 'startplz='+startplz+'&startstrasse='+startstrasse+'';
//alert(''+dataPass+'');
$.ajax({
type : 'POST',
data : dataPass,
url : 'available.php',
});
}
});
});
HTML:
<input type=text name=startstrasse placeholder="Strasse" id=startstrasse required style="-moz-border-radius: 5px; -webkit-border-radius: 5px; border: #FE642E solid 1px;"> <input type=text name=starthnr placeholder="Nr." size=5 required style="-moz-border-radius: 5px; -webkit-border-radius: 5px; border: #FE642E solid 1px;">
available.php (extra noch mit MySQL geschrieben, um es für mich noch ziemlich einfach zu halten und meinen Fehler zu finden)
PHP:
$startplz = $_GET['startplz'];
$startstrasse = $_GET['startstrasse'];
echo "startplz = $startplz<br>";
echo "startstrasse = $startstrasse<br><br>";
if ($startplz!='' AND $startstrasse!='')
{
$return_arr = array();
$plz = substr($startplz, 0, 5);
$plz = str_replace(" ","",$plz);
$ort = substr($startplz, 6);
$ort = str_replace(" ","",$ort);
echo "plz = $plz<br>ort = $ort<br><br>";
include("connect.php");
$query = "SELECT strasse FROM plz_ort_strassen WHERE strasse LIKE '%$startstrasse%' AND plz='$plz' AND ortsname='$ort'";
$sql = mysql_query($query);
$ds = mysql_fetch_object($sql);
$strasseOUT = $ds->strasse;
echo "<br>SQL: $query<br>";
echo "Strasse: $strasseOUT<br><br>";
$queryB=mysql_query("SELECT strasse FROM plz_ort_strassen WHERE strasse LIKE '%$startstrasse%' AND plz='$plz' AND ortsname='$ort';");
$streetcount=1;
while( $row=mysql_fetch_array($queryB) )
{
$return_arr[] = $row['strasse'];
echo "".$row['strasse']."<br>";
$streetcount++;
}
echo "<hr>";
echo json_encode($return_arr);
}
Wie bekomme ich es jetzt hin, das die Auswahl aus aus available.php als Autocomplete erscheint?
Ich finde da meinen Fehler nicht - bin aber auch was JS angeht ein Noob.
Vielen Dank.
Ein vergleichbares Posting steht auch auf php.de
Allerdings ging es dort um eine ganz andere Thematik und wird nicht mehr beantwortet (kein crossposting)