2017-01-04 6 views
0

Okay, ich benutze vorbereitete Anweisung, um alle Städte zu bekommen.Autocomplete funktioniert nicht mit mysql

das ist meine PHP-Datei

<?php 
include_once '../includes/db_connect.php'; 
$search = $_GET['term']; 
if($stmtgetstore = $mysqli->prepare("SELECT * FROM cities WHERE city LIKE '%$search%'")) 
{ 
    //$stmtgetstore->bind_param("s",$search); 
    $stmtgetstore->execute(); 
    $getstore = $stmtgetstore->get_result(); 
    $stmtgetstore->close(); 
} 
else 
{ 
    echo $mysqli->error; 
} 
$array = array(); 

$json = '['; 
$first = true; 
while($store = $getstore->fetch_assoc()) 
{ 
    if (!$first) { $json .= ','; } else { $first = false; } 
    $json .= '{"value":"'.$store['city'].'"}'; 
} 
$json .= ']'; 

?> 

Und das ist mein Skript und html

<script type="text/javascript"> 
$(document).ready(function() 
{ 
    $('#autoCity').autocomplete(
    { 
     source: "scripts/search_store_by_city.php", 
     minLength: 2 
    })/*.data("autocomplete")._renderItem = function(ul, item) 
    { 
     return $("<li></li>") 
     .data("item.autocomplete", item) 
     .append(item.city) 
     .appendTo(ul); 
    };*/ 
}); 
</script> 




    <div class="container"> 

    <form action="" method="GET"> 
     <input type="text" id="autoCity"> 
    </form> 

    </div> 

Aber irgendwie, wenn ich Briefe in Textbox eingeben sehe ich kein Ergebnis in der Konsole und keinen Fehler auch kommen, aber wenn ich Abfrage in der Datenbank ausführen es gibt mir Reihen

diese Abfrage

SELECT * FROM cities WHERE city LIKE '%Kara%'

Irgendeine Idee, was ich falsch mache?

+0

Haben Sie den AJAX-Request/Response in der Entwickler-Browser-Tool beobachtet Echo? Haben Sie die jQuery-Bibliothek in das Projekt aufgenommen? Werden in der Konsole Fehler gemeldet? Laufen Sie das auf einem Webserver? Haben Sie Ihre serverseitigen Fehlerprotokolle überprüft? –

+0

Yess Ich habe Ajax Anfrage und Antwort überprüft. Ich habe gesehen, dass nichts zurückkommt. Ich habe jQuery-Bibliotheken verwendet und auch gibt es keine Fehler, die zurückkommen, noch irgendwelche Daten – Alexxxx

+0

Einige sinnvolle Code-Einrückung wäre eine gute Idee. Es hilft uns, den Code zu lesen und, was noch wichtiger ist, es hilft Ihnen, Ihren Code zu debuggen. ** [Werfen Sie einen Blick auf einen Kodierungsstandard] (http://www.php-fig.org/psr/psr-2/) zu Ihrem eigenen Vorteil. Sie werden möglicherweise aufgefordert, diesen Code in ein paar Wochen/Monaten zu ändern, und Sie werden mir am Ende danken. – RiggsFolly

Antwort

0

Okay, habe ich vergessen, meine Json am Ende des Skripts

<?php 
include_once '../includes/db_connect.php'; 
$search = $_GET['term']; 
if($stmtgetstore = $mysqli->prepare("SELECT * FROM cities WHERE city LIKE '%$search%'")) 
{ 
//$stmtgetstore->bind_param("s",$search); 
$stmtgetstore->execute(); 
$getstore = $stmtgetstore->get_result(); 
$stmtgetstore->close(); 
} 
else 
{ 
echo $mysqli->error; 
} 
$array = array(); 

$json = '['; 
$first = true; 
while($store = $getstore->fetch_assoc()) 
{ 
if (!$first) { $json .= ','; } else { $first = false; } 
$json .= '{"value":"'.$store['city'].'"}'; 
} 
$json .= ']'; 
echo $json; 

?>

+1

Erstellen Sie JSON nicht von Hand so. Setze deine Daten in ein Array und benutze 'json_encode()'. – Barmar

+0

Errrm ... 'json_encode()' – Kitson88

+1

Yess ich habe es Kumpel! Ich habe es durch die json_encode() – Alexxxx

Verwandte Themen