2013-11-23 87 views
0

我已經得到了我所有的HTML工作正常,但似乎與我的PHP代碼的一個問題,當我嘗試自動完成現場PHP自動完成不工作

search.php 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<link href="css/style.css" rel="stylesheet" type="text/css"> 

<SCRIPT LANGUAGE="JavaScript" src="js/jquery.js"></SCRIPT> 
<SCRIPT LANGUAGE="JavaScript" src="js/script.js"></SCRIPT> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 

    <div class="main"> 
     <div class=""><a href="http://www.scriptime.blogspot.in">scriptime</a></span></div> 
     <div id="holder"> 
     Enter Keyword : <input type="text" id="keyword" tabindex="0"><img src="images/loading.gif" id="loading"> 
     </div> 
     <div id="ajax_response"></div> 

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

這裏我的PHP代碼

名.PHP

<?php 
    include("Connections/myphp.php"); 
    $keyword = $_POST['data']; 
    $sql = "select username from ".$users." where ".$username." like '".$keyword."%' limit 0,20"; 
    //$sql = "select username from ".$users.""; 
    $result = mysql_query($sql) or die(mysql_error()); 
    if(mysql_num_rows($result)) 
    { 
     echo '<ul class="list">'; 
     while($row = mysql_fetch_array($result)) 
     { 
      $str = strtolower($row['username']); 
      $start = strpos($str,$keyword); 
      $end = similar_text($str,$keyword); 
      $last = substr($str,$end,strlen($str)); 
      $first = substr($str,$start,$end); 

      $final = '<span class="bold">'.$first.'</span>'.$last; 

      echo '<li><a href=\'javascript:void(0);\'>'.$final.'</a></li>'; 
     } 
     echo "</ul>"; 
    } 
    else 
     echo 0; 
?> 

Ajax代碼

/* 
cc:scriptime.blogspot.in 
edited by :midhun.pottmmal 
*/ 
$(document).ready(function(){ 
    $(document).click(function(){ 
     $("#ajax_response").fadeOut('slow'); 
    }); 
    $("#keyword").focus(); 
    var offset = $("#keyword").offset(); 
    var width = $("#keyword").width()-2; 
    $("#ajax_response").css("left",offset.left); 
    $("#ajax_response").css("width",width); 
    $("#keyword").keyup(function(event){ 
     //alert(event.keyCode); 
     var keyword = $("#keyword").val(); 
     if(keyword.length) 
     { 
      if(event.keyCode != 40 && event.keyCode != 38 && event.keyCode != 13) 
      { 
       $("#loading").css("visibility","visible"); 
       $.ajax({ 
        type: "POST", 
        url: "names.php", 
        data: "data="+keyword, 
        success: function(msg){ 
        if(msg != 0) 
         $("#ajax_response").fadeIn("slow").html(msg); 
        else 
        { 
         $("#ajax_response").fadeIn("slow"); 
         $("#ajax_response").html('<div style="text-align:left;">No Matches Found</div>'); 
        } 
        $("#loading").css("visibility","hidden"); 
        } 
       }); 
      } 
      else 
      { 
       switch (event.keyCode) 
       { 
       case 40: 
       { 
         found = 0; 
         $("li").each(function(){ 
         if($(this).attr("class") == "selected") 
          found = 1; 
         }); 
         if(found == 1) 
         { 
         var sel = $("li[class='selected']"); 
         sel.next().addClass("selected"); 
         sel.removeClass("selected"); 
         } 
         else 
         $("li:first").addClass("selected"); 
        } 
       break; 
       case 38: 
       { 
         found = 0; 
         $("li").each(function(){ 
         if($(this).attr("class") == "selected") 
          found = 1; 
         }); 
         if(found == 1) 
         { 
         var sel = $("li[class='selected']"); 
         sel.prev().addClass("selected"); 
         sel.removeClass("selected"); 
         } 
         else 
         $("li:last").addClass("selected"); 
       } 
       break; 
       case 13: 
        $("#ajax_response").fadeOut("slow"); 
        $("#keyword").val($("li[class='selected'] a").text()); 
       break; 
       } 
      } 
     } 
     else 
      $("#ajax_response").fadeOut("slow"); 
    }); 
    $("#ajax_response").mouseover(function(){ 
     $(this).find("li a:first-child").mouseover(function() { 
       $(this).addClass("selected"); 
     }); 
     $(this).find("li a:first-child").mouseout(function() { 
       $(this).removeClass("selected"); 
     }); 
     $(this).find("li a:first-child").click(function() { 
       $("#keyword").val($(this).text()); 
       $("#ajax_response").fadeOut("slow"); 
     }); 
    }); 
}); 

當我試圖尋找一個名字它給我一個錯誤說:你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本在1號線

+0

什麼在$用戶? – Mihai

+0

如何關鍵字被髮送到服務器?你的代碼中提到AJAX,讓我們看看你的JavaScript – andrew

+0

@Mihai,它的列名 – blay

回答

0
$sql = "select username from ".$users." where ".$username." like '".$keyword."%' limit 0,20"; 

使用近「其中像‘奔%’限制0,20」正確的語法,你錯過了$users$username什麼他們的價值觀是手動?

+0

我已經複製了答案和粘貼,但仍然不奏效 – blay

+0

的錯誤意味着你SQL有一些問題,我想大概是怎麼一回事,因爲那些PARAM沒有任何價值或之後'有一些奇怪的值 – Patato

+0

$ SQL =「選擇....''放回聲$ sql'看到你的SQL查詢實際上看起來像 – andrew

0

兩兩件事:

我不認爲你需要data:"data="+keyword,看着你的php data:keyword就足夠了。

其次, 試着改變你的查詢:

$sql = "select username from users where username like '".$keyword."%' limit 0,20";

,因爲你的PHP似乎並不具有$users$username集。