显示包含在文本框中键入的句子的结果

时间:2014-04-01 08:39:28

标签: php jquery

您好我想创建一个可以从表中选择数据的文本框,当输入文本框时,它应该使用

中匹配的任何单词自动完成发送。

我已经有了这段代码,但是它只能显示你输入的第一个符号的结果。

function lookup(inputString)
{
    if(inputString.length == 0)
    {
        $('#suggestions').hide();
    }    
    else     
    {    
        $.post("sql_naam_klant.php", {queryString: ""+inputString+""}, function(data)    
        {   
    if(data.length >0)    
    {    
        $('#suggestions').show();    
        $('#autoSuggestionsList').html(data);
    }
        });
    }
}

function fill(thisValue) 
{
    $('.inputString').val(thisValue);
    setTimeout("$('.suggestions').hide();", 200);
}

HTML:

<input type="text" name="naam_klant" size="20" id="naam_klant" onkeyup="lookup(this.value);" onblur="fill();" >    
            <div class="suggestionsBox" id="suggestions" style="display: none;">
            <div class="suggestionList" id="autoSuggestionsList">

更新:

<?php
$db = new mysqli('localhost', 'root' ,'*', 'records');
if(!$db) 
{
// Show error if we cannot connect.        
echo 'ERROR: Could not connect to the database.';
} 

else 
{
// Is there a posted query string?
if(isset($_POST['queryString']))
{
$queryString = $db->real_escape_string($_POST['queryString']);
// Is the string length greater than 0?
if(strlen($queryString) >0) 
{
$query = $db->query("SELECT naam_klant FROM overboekingen WHERE naam_klant LIKE '$queryString%' LIMIT 10");     

if($query)
{
while ($result = $query ->fetch_object())
{
echo '<li onClick="fill(\''.$result->naam_klant.'\');">'.$result->naam_klant.'</li>';
}
}

else 
{
echo 'ERROR: There was a problem with the query.';
}
} 
else 
{
} // There is a queryString.
} 
else 
{
echo 'There should be no direct access to this naam_klant script!';
}   
}
?>

2 个答案:

答案 0 :(得分:1)

我无法回答这个问题,因为它不完整。我们需要查看sql_naam_klant.php的内容,看看为什么会这样。

我假设错误在查询中。

在where语句中使用Wildcard Symbol (%)

"Select * from tblnames where name like '%$queryString%';"

一旦您向我们提供完整的详细信息,我们就会立即编辑此答案。

如果要查找键入的内容,文本块的开头或结尾,请在搜索关键字的开头和结尾使用通配符。 %$queryString%。如果您要查找的是文本块的开头,则使用$queryString%,如果您正在查看文本块%$queryString的结尾。

答案 1 :(得分:0)

您可以使用.change()javascript事件,并在每次输入更改时执行异步ajax发布,并在请求完成时更新建议div - 这是我将如何操作