2016-08-21 3 views
3

Hallo Ich bin ein Anfänger in Ajax und PHP so leid, wenn meine Frage nutzlos oder dumm ist. Aber ich versuche eine Live-Suche mit Ajax zu machen und ich habe immer wieder ins Internet geschaut, aber nichts konnte mir helfen ... also hier bin ich! :-) Ich habe 4 Dateien eine für die html, eine für die Verbindung mit der Datenbank, eine für jQuery und die letzte für das Skript in PHP. Ich habe auf der Konsole mit Chrom gesehen und ich kann sehen, dass der Ajax funktioniert, aber es gibt keine Ausgabe und ich habe keine Ahnung, warum ... Ich werde Ihnen den Code unten und ein frühes Dankeschön! Es könnte auch etwas Französisch im Code geben, aber es sind nur die Variablen und ich werde später meine Verbindung zur Datenbank sichern. Danke nochmal. Html:Ajax Anfrage funktioniert aber keine Ausgabe

<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>live search test</title> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
    <script type="text/javascript" src="search.js"></script>  
</head> 
<body> 


    <h1>LIVE SEARCH WITH AJAX TEST</h1> 
    <div class="search"> 
    <input type="search" name="search" id="recherche"> 
    </div> 
    <br> 
    <div class="resultat" id="resultat"> 

    </div> 
</body> 
</html> 

PHP in der Datenbank zu verbinden:

<?php 
$host="localhost"; 
$user="root"; 
$password=""; 
$db="smartphone"; 

$conn=mysqli_connect($host,$user,$password,$db); 
?> 

jQuery:

$(document).ready(function(){ 
    $("#recherche").keyup(function(){ 
     var recherche = $(this).val(); 
     var data = 'motclef = ' + recherche; 
     if (recherche.length > 1) { 

      $.ajax({ 
      type : "GET", 
      url : "fetch.php", 
      data : data, 
      success : function(server_response){ 
      $("#resultat").html(server_response).show(); 
      } 
      }); 

     } 

    }); 
    }); 

und das Skript in PHP:

include'connect.php'; 

if (isset($_GET['motclef'])) { 
    $motclef = $_GET['motclef']; 
    $q = array('motclef' => $motclef. '%'); 
    $sql = "SELECT name FROM smartphone WHERE name LIKE :motclef"; 
    $req = $conn ->prepare($sql); 
    $req -> execute($q); 
    $count = $req->rowCount($sql); 

    if ($count == 1) { 
     while ($result = $req -> fetch(PDO::FETCH_OBJ)) { 
      echo 'Smartphone :'.$result ->title.' '; 
     } 
    }else { 
    echo "Aucun resultat trouvé pour:". $motclef; 
    } 
} 
?> 

Antwort

1

Leerzeichen entfernen von 'motclef = '
var data = 'motclef= ' + recherche;

Andere weisen put unterstreichen $_GET['motclef_'] in Ihrem PHP-Code (wenn Sie Platz nicht dann entfernen)

if (isset($_GET['motclef_'])) { 
    $motclef = $_GET['motclef_']; 
    $q = array('motclef' => $motclef. '%'); 
    $sql = "SELECT name FROM smartphone WHERE name LIKE :motclef"; 
    $req = $conn->prepare($sql); 
    $req->execute($q); 
    $count = $req->rowCount($sql); 

    if ($count == 1) { 
     while ($result = $req->fetch(PDO::FETCH_OBJ)) { 
      echo 'Smartphone :'.$result->title.' '; 
     } 
    }else { 
    echo "Aucun resultat trouvé pour:". $motclef; 
    } 
} 
+0

Hallo, danke für deine Antwort scheint es, wie ich einen Ausgang haben, wenn ich schreibe, aber jetzt habe ich eine Fehlermeldung wie folgt: "Aufruf an eine Member-Funktion prepare() für ein Nicht-Objekt" Was bedeutet das? – keyup38

+0

Es ist in Bezug auf Vorbereitung Aussage –

+0

Ok, ich werde es suchen, danke für Ihre Antwort – keyup38

Verwandte Themen