这是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轻松地对其进行操作。但是,这是一种实现你所想的方法!