javascript - 文本区域中的单词自动完成(单词建议)

标签 javascript php jquery mysql

在我的代码中,我使用一个文本区域来提供单词建议(自动完成),并且该文本区域从 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/

相关文章:

PHP:在数组中填充 'gaps'

javascript - Fullcalendar - 在数据库中保存事件

javascript - jquery-knob 在 Angular Directive(指令)中始终为 NAN

Javascript 在 Canvas 上绘制并将其与视频合并并一起保存

javascript - 我怎样才能让我的柜台看起来不那么假?

javascript - 在函数运行之前如何隐藏 CSS?

javascript - ajax改变html后如何维护jquery?

javascript - 如何在可水平滚动的表格中显示可见的垂直溢出?

php - 如何从存储在数据库中的路径显示图像?

php - MySQL 返回 PDO 占位符名称