如何在PHP中的自动完成中从ID的名字和姓氏返回ID


How can I return the ID based from its first name and last name in autocomplete in PHP?

这是index.php代码(我在网上得到了这个,归功于所有者):

 <HTML>
 <HEAD>
  <TITLE> Ajax php Auto Suggest </TITLE>
  <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>
 </HEAD>
 <BODY>
 <center>
   <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>
 </center>
 </BODY>
</HTML>

这是php代码(配置运行良好)。

<?php
include("config.php");
$keyword = $_POST['data'];
$sql = "select idPerson, firstName, middleName, lastName from ".$db_table." where ".$db_column." like '".$keyword."%'";
//$sql = "select name from ".$db_table."";
$result = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result))
{
    echo '<ul class="list">';
    while($row = mysql_fetch_array($result))
    {
        $str = ($row['idPerson']);
        $str1 = ($row['firstName']);
        $str2 = ($row['middleName']);
        $str3 = ($row['lastName']);
        //$start = strpos($str,$keyword); 
        //$end   = similar_text($str,$keyword); 
        //$last = substr($str,$end,strlen($str));
        //$first = substr($str,$start,$end);
        $final = '-'.$str.' '.$str2;
        echo '<li><a href=''javascript:void(0);''>'.$str.' - '.$str1.' '.$str2.' '.$str3.'</a></li>';
    }
    echo "</ul>";
}
else
    echo 0;?>      

这是输出:如果我单击该值,我希望文本框只返回其ID。我该怎么做?我真的需要帮助。我还是很差劲。

在文本字段中显示ID是一种糟糕的做法。如果用户想再次键入该怎么办?当然,您可以使用jQuery执行任何操作,但我建议您在选择id后将其显示在字段的前面

请尝试下面的代码,其中我们将first name last name放在div中,并从数据库中检索一个唯一的id,每当单击此div时,我们都会附加id并将其显示给用户。

您的PHP代码:

<?php
include("config.php");
$keyword = $_POST['data'];
$sql = "select idPerson, firstName, middleName, lastName from ".$db_table." where ".$db_column." like '".$keyword."%'";
//$sql = "select name from ".$db_table."";
$result = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result))
{
    echo '<ul class="list">';
    while($row = mysql_fetch_array($result))
    {
        $str = ($row['idPerson']); 
        $str1 = ($row['firstName']);
        $str2 = ($row['middleName']);
        $str3 = ($row['lastName']);
        //$start = strpos($str,$keyword); 
        //$end   = similar_text($str,$keyword); 
        //$last = substr($str,$end,strlen($str));
        //$first = substr($str,$start,$end);
        $final = '-'.$str.' '.$str2;

        echo "<li><a href='javascript:void(0);'><div class='nameHolder' id='".$str."'>".$str1." ".$str2."</div></a></li>";
    }
    echo "</ul>";
}
else
    echo 0;?>

将这个JavaScript(更确切地说,jQuery)添加到您的页面:

<script type="text/javascript">
$(document).ready(function(){
    $(".nameHolder").click(function(){ //check if any of the names is clicked
    if ($(".showID")[0])
    {  
        $('.showID').remove(); //remove if an id was shown before
    }
    var selectedID = $(this).attr('id'); //get the 'id' of the selected name
    $(".list").append("<b class='showID'>ID: "+selectedID+"</b>"); //append it to our HTML
    });
});
</script>

尽管如此,这仅仅取决于执行自动完成函数的方式,并且可以使用jQuery轻松地对其进行操作。但是,这是一种实现你所想的方法!