2016-03-07 20 views
0

我從網上獲得了插件並做了一些必要的更改。但我認爲PHP沒有迴應。AJAX:爲什麼Autosuggest(給定)不起作用?

exp1.html代碼

<html> 
<head> 
<meta charset="UTF-8"> 
<title>AutoSuggestion using Ajax, Jquery and PHP</title> 
<link rel="stylesheet" href="exp1.css"> 
</head> 

<body> 
<div class="serch-wrap"> 
    <div class="form-wrapper cf"> 
     <input type="text" class="abhijitscript" name="search_word"> 
     <input type="submit" value="Search"> 
    </div> 
    <div class="autodropdown"> 
     <ul class="suggestresult"></ul> 
    </div> 
</div> 
</body> 
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="exp1.js"></script> 

</html> 

exp1.php

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

$link=mysqli_connect($host,$user,$password); 
if(@mysqli_select_db($link,'books')){ 
// echo "Database connected..<br>"; 
} 
else 
echo mysqli_connect_error(); 


if(isset($_POST['name'])) 
{ 
$name = mysqli_real_escape_string($link,trim($_POST['name'])); 
$sql = "SELECT `name` FROM `books` WHERE `name` LIKE 'l%'"; 
$myquery = mysqli_query($link,$sql) or die(mysql_error()); 
if(mysqli_num_rows($myquery) !=0) 
{ 
    while(($row = mysqli_fetch_array($myquery)) !== false) 
    { 
     echo '<li>'.$row['name'].'</li>'; 
    } 
} 
else 
{ 
    echo '<li>Not Found</li>'; 
} 
} else{ 
echo "not set!"; 
} 
?> 

exp1.js

$(document).ready(function(){ 
$('.abhijitscript').keyup(function(){ 
    var query_string = $(this).val(); 
    $.ajax({ 
     type: "POST", 
     url: "exp1.php", 
     data: { name:query_string }, 
     success: function(data) 
     { console.log(data); 
      $('.suggestresult').html(data); 
      $('.suggestresult li').click(function(){ 
       var return_value = $(this).text(); 
       $('.abhijitscript').attr('value', return_value); 
       $('.abhijitscript').val(return_value); 
       $('.suggestresult').html(''); 
      }); 
     } 
    }); 
}); 
}); 

控制檯也沒有顯示任何錯誤,它指向一些錯誤在php代碼。我提供了完整的代碼。謝謝!

+0

試試這個'$ SQL =「SELECT‘名稱’從‘書’,其中‘名’LIKE‘%$名字%’」;我爲什麼用「取代它' – sudhakar

+0

這實際上並沒有工作,這是L」。 –

回答

0

我編輯了你的代碼,它現在對我來說工作的很好。

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

[email protected]_connect($host,$user,$password); 
if(!$link || [email protected]_select_db($link,'books')){ 
    echo mysqli_connect_error(); 
    exit ; 
} 

if(isset($_POST['name'])) { 
    $name = mysqli_real_escape_string($link,trim($_POST['name'])); 
    $sql = "SELECT DISTINCT(`name`) FROM `books` WHERE `name` LIKE '%{$name}%'"; 
    $myquery = mysqli_query($link,$sql) or die(mysql_error()); 
    if(mysqli_num_rows($myquery) !=0) { 
     while(($row = mysqli_fetch_array($myquery)) !== NULL) { 
      echo '<li>'.$row['name'].'</li>'; 
     } 
    } else { 
     echo '<li>Not Found</li>'; 
    } 
} else { 
    echo "not set!"; 
} 
?> 
+0

那麼你可以執行autosuggest或者你只測試php文件? –

+0

我沒有做任何其他更改,只是編輯了PHP文件。我使用上面的3個文件進行了測試。但我會使用'%{$ name}%'來更改查詢,以使用名稱文件的任何部分進行搜索。 vs開始像'$ name%'一樣。 – cyrille

+0

我不知道是什麼問題,但它仍然不適合我...可能是JS文件中的問題。因爲控制檯只是顯示「導航到http://localhost/exp1.html」 –

相關問題