PHP 自动完成功能不起作用

标签 php jquery mysql

我的所有 html 都工作正常,但当我尝试自动完成字段时,我的 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 行的“where like 'ben%' limit 0,20”附近使用的正确语法

最佳答案

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

您错过了 $users$username 它们的值是什么?

关于PHP 自动完成功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20165839/

相关文章:

javascript - 使用 jQuery 检测元素内容变化

jquery - 缩放 div 层中的文本与容器 bg-image 成比例

php - Mysql 主表不存在时自动插入记录

php - 不需要的 <p><span><div> 标签被插入到数据库中

php - 如何在 wamp 服务器上安装 ffmpeg (windows 7 - x64)

javascript - 严格使用 php 或 javascript 按第一列 1 对 CSV 文件进行排序

php - codeigniter 使用 where_in 获取 mysql 表 + 保持结果数组中键数组的顺序

PHP MySQLi 准备语句 - SELECT

jquery - 无法读取未定义的属性 '0'

php - mysql_query SELECT 没有给出想要的结果