我有一个文本框用作数据库的实时搜索。 我需要检查文本框的值是否存在于数据库中,如果不存在,则显示“echo”
一些代码:
if($_POST){
$q=$_POST['search'];
$sql_res=mysql_query("select name, surname, test1, test2, test3 from table where name like '%$q%' or surname like '%$q%' order by field (test1,1,0)");
while($row=mysql_fetch_array($sql_res))
{
$name=$row['name'];
$surname=$row['surname'];
$test1=$row['test1'];
$test2=$row['test2'];
$test3=$row['test3'];
$b_name='<strong>'.$q.'</strong>';
$b_surname='<strong>'.$q.'</strong>';
$final_name = str_ireplace($q, $b_name, $name);
$final_surname = str_ireplace($q, $b_surname, $surname);
if ($test1== 0){
$test1= "notCompatible";}
else
{$test1= "Compatible";}
$display = 'exist';
?>
<?php echo $display?>
<?php
}
}
?>
修改
好吧也许代码不是那么清楚,我会添加一些细节:
HTML:
<div class="container">
<div class="searchContainer">
<span class="searchBox"><input type="text" id="searchid" autofocus placeholder="Search valve" /></span>
<img class="searchIcon" src="img/search.png" />
</div>
<div id="result" class="resultContainer">
实时搜索的JavaScript:
<script type="text/javascript">
$(function(){
$("#searchid").keyup(function()
{
var searchid = $(this).val();
var dataString = 'search='+ searchid;
if(searchid!='')
{
$.ajax({
type: "POST",
url: "search.php",
data: dataString,
cache: false,
success: function(html)
{
$("#result").html(html).show();
}
});
}return false;
});
jQuery("#result").live("click",function(e){
var $clicked = $(e.target);
var $name = $clicked.find('.name').html();
var decoded = $("<div/>").html($name).text();
$('#searchid').val(decoded);
});
jQuery(document).live("click", function(e) {
var $clicked = $(e.target);
if (! $clicked.hasClass("search")){
jQuery("#result").fadeOut();
}
});
$('#searchid').click(function(){
jQuery("#result").fadeIn();
});
});
目前,实时搜索和数据库中的结果数据有效,但我无法实时检查(当我将数字写入文本框时)数据库并立即显示div像“没有找到记录”或类似的消息。