2016-08-21 11 views
3

こんにちは私はAjaxとPHPの初心者ですので、私の質問が役に立たない、または愚かであれば申し訳ありません。しかし、私はajaxでライブ検索をしようとしていると私はインターネット上で何度も見ているが、何も私を助けることができない...だから私はここにいる! :-)私は4つのファイルを1つのhtml、1つのデータベースに接続するには、1つのjQueryとPHPのスクリプトの最後のものがあります。私はクロームでコンソールを見て、私はアヤックスが動作することがわかりますが、出力はありません。理由はわかりません...私はあなたに以下のコードを残して、早めに感謝します!また、コードにフランス語があるかもしれませんが、それは単なる変数なので、後でデータベースとの接続を確保します。ありがとうございました。 HTML:データベースに接続するためAjaxリクエストは機能していますが出力はありません

<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:

<?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(); 
      } 
      }); 

     } 

    }); 
    }); 

そして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; 
    } 
} 
?> 

答えて

1

'motclef = 'から空白を削除します
var data = 'motclef= ' + recherche;

他の賢明プットは、(あなたがしてスペースを削除しない場合)、こんにちは

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

PHPコードで$_GET['motclef_']を強調する私が入力した後、私は出力を持っているようにそれはそうだあなたの答えをありがとうございました、しかし、今私はそういうエラーメッセージが表示されます: "非オブジェクト上のメンバ関数prepare()を呼び出す"とはどういう意味ですか? – keyup38

+0

それは準備文である –

+0

オハイオ州私はあなたのためにそれを検索してくれますよ、お返事ありがとうございます – keyup38

関連する問題