在我的代码中,我使用一个文本区域来提供单词建议(自动完成),并且该文本区域从 MySQL 数据库表中获取单词建议的值。但是,每当我在文本区域中输入第二个单词时,此文本区域仅给出文本区域中的第一个单词,它不会给出任何建议,因此如何修复此代码,使其在文本区域中的所有单词中给出建议。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script>
$(function() {
$("#skill_input").autocomplete({
source: "search.php",
minLength: 1,
select:function (event,ui) {
event.onkeyup();
$('#skill_input').value;
}
});
});
</script>
<p>your skills:<textarea name="skill_input" id="skill_input" rows="10" ></textarea></p>
PHP 代码:
$db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
$query = $db->query("SELECT * FROM skills WHERE skill LIKE '%".$searchTerm."%' ORDER BY skill ASC");
$skillData = array();
if($query->num_rows > 0){
while($row = $query->fetch_assoc()){
$data['id'] = $row['id'];
$data['value'] = $row['skill'];
array_push($skillData, $data);
}
}
echo json_encode($skillData);
最佳答案
您好@Love Barot,为了显示第二个单词的建议,您还需要具有该形式的数据
请检查以下 fiddle ,其中我包含“二”作为数据和“二三”作为数据,因此当我输入“tw”时,它显示两个作为建议,当我在两个之后输入“th”时,它显示建议“三”,因为存在该形式的数据。
[JS fiddle link](https://jsfiddle.net/hp_issei/0gf294vy/2/)
这就是您没有收到第二个单词建议的原因。
关于javascript - 文本区域中的单词自动完成(单词建议),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54359160/