2013-11-23 156 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集。