0

我观看了一个视频,该视频描述了如何在输入中实现自动完成。最后,我在 Firefox 和 chrome 中进行了测试,它运行良好,除了在 Internet Explorer 中:这是下面的代码:

jQuery:

function getSuggestions(value){
        if(value!=''){  
                $.get('suggest.php', {requestKword:value}, function (data){
                            $('#suggestions').show();
                            $('#suggestions').html(data);
                            doCSS();
                    });
        }
        else{
            removeSuggestions();
        }
}
function removeSuggestions(){
    $("#suggestions").html("");
    undoCSS();
}   
function fill(thisValue) {
    $('#ii').val(thisValue);
    setTimeout("$('#suggestions').hide();", 200);
}
function doCSS(){
$("#suggestions").css({
    'border' : 'solid',
    'border-width':'1px',
    'position': 'relative'
    });
}
function undoCSS(){
$("#suggestions").css({
    'border' : '',
    'border-width':''
    });
}
function addText(value){
        $("#ii").val(value);
}

CSS:

#suggestions{
text-align:left;
padding-left:5px;
font-size:14px;
}
#link:hover{ background-color:#f0f0f0; cursor:default;}

html:

<form action="/" method="get" id="set" name="set">
<input id="ii" type="text" name="q" size="96px"  value=""  onblur="fill();"  onkeyup="getSuggestions(this.value)"  /><br />
<div id="suggestions"></div>
</form>

mysql:建议.php

mysql_connect('localhost', 'root', '');
mysql_select_db('keywords') or die (mysql_error());
$keyword=mysql_real_escape_string($_GET['requestKword']);
$result = mysql_query("SELECT * FROM `table`.`keys` where `column` like '$keyword%' LIMIT 0 , 10") or die (mysql_error());
while($row = mysql_fetch_assoc($result)){
    echo '<div id="link" onclick="addText(\''.$row['keyword'].'\')" ">'.$row['keyword'].'</div>';
}
4

3 回答 3

0

请看看这是否适合你...

将这些行添加到您的 jQuery 代码中:

$("#ii").keyup(function() {
  getSuggestions(this.value);
});

$("#ii").blur(function(){
  fill();
});

替换以下 HTML 行:

<input id="ii" type="text" name="q" size="96px"  value=""  onblur="fill();"  onkeyup="getSuggestions(this.value)"  /><br />

和:

<input id="ii" type="text" name="q" size="96px"  value="" /><br />
于 2012-10-21T13:12:35.023 回答
0

您可能需要在此处考虑 jQuery 自动完成插件:http: //jqueryui.com/autocomplete/。它有很好的工作演示;尖端 ....

于 2012-10-21T22:22:40.580 回答
0

最后我找到了解决方案,它非常简单:

我在 php 代码中添加了一些 sode:

前 :

mysql_connect('localhost', 'root', '');
mysql_select_db('keywords') or die (mysql_error());
$keyword=mysql_real_escape_string($_GET['requestKword']);
$result = mysql_query("SELECT * FROM `table`.`keys` where `column` like '$keyword%' LIMIT 0 , 10") or die (mysql_error());
while($row = mysql_fetch_assoc($result)){
echo '<div id="link" onclick="addText(\''.$row['keyword'].'\')" ">'.$row['keyword'].'</div>';
}

后 :

mysql_connect('localhost', 'root', '');
mysql_select_db('keywords') or die (mysql_error());
$keyword=mysql_real_escape_string($_GET['requestKword']);
$result = mysql_query("SELECT * FROM `table`.`keys` where `column` like '$keyword%' LIMIT 0 , 10") or die (mysql_error());

if($result) 
{
   while($row = mysql_fetch_assoc($result)){
   echo '<div id="link" onclick="addText(\''.$row['keyword'].'\')" ">'.$row['keyword'].'</div>';
   }
}
于 2012-10-22T23:03:18.980 回答