php – 如何根据句子结构在输入字段中创建多个自动完成?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何根据句子结构在输入字段中创建多个自动完成?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我的自动填充的句子结构是: @H_301_1@<职业> <对于> <时间段>

@H_301_1@例:

@H_301_1@>学生5年
>老师2年

@H_301_1@在数据库中,我有一个包含职业列表的列.使用jquery UI自动完成,我使用以下代码填充文本输入中的前两个部分:

<script>
    $(function() {
        $("#occupation").autocomplete({
            source: 'seArch.PHP',delay: 500,select: function(event,ui) {
                $(this).val(ui.ITem.value)
            }
        });
    });
</script>
<input tyPE='text' name='occupation' id='occupation’>
@H_301_1@search.PHP代码

<?PHP
$searchTerm = $_GET['term'];
$query = $db->query("SELECT DISTINCT occupation From table WHERE occupation LIKE '%" . $searchTerm . "%' ORDER BY occupation ASC");
$a_JSON = array();

while ($row = $query->fetch_assoc())
    {
    $data_row["value"] = $row['occupation'] . ' for';
    $data_row["label"] = $row['occupation'];
    array_push($a_json,$data_row);
    }

echo json_encode($a_json);
@H_301_1@现在,有没有办法创建第二个触发器来为其余的自动完成?就像选择职业一样,如果用户输入5,它将显示该时间段的以下自动完成选项:5天/ 5周/ 5个月/ 5年.如下图所示:

@H_301_1@提前感谢您的建议.

我建议按照此处显示的多个示例: http://jqueryui.com/autocomplete/#multiple @H_301_1@基本上,我们将有选择地选择要填写的标签,使用“for”作为分隔符而不是“,”.

VAR occupations = [{
  value: "Assistant for",label: "Assistant"
},{
  value: "Student for",label: "Student"
},{
  value: "Teacher for",label: "Teacher"
}];

var oLength = [
  "Days","Weeks","Months","Years"
];

$(function() {
  function split(val) {
    return val.split(/\sfor/);
  }

  function extractLast(term) {
    return split(term).pop();
  }

  $("#occupation").on("keydown",function(event) {
    if (event.keyCode === $.ui.keyCode.TAB &&
      $(this).autocomplete("instance").menu.active) {
      event.preventDefault();
    }
  }).autocomplete({
    minLength: 0,source: function(request,response) {
      var term = extractLast(request.term);
      var results = [];
      if (request.term.indexOf("for") > 0) {
        var regE = /^(.*)\sfor\s(\d)\s(.*)$/
        if (regE.test(request.term)) {
          return false;
        }
        if (parseint(term) > 0) {
          $.each(oLength,function(k,v) {
            results.push(term + " " + v);
          });
        }
      } else {
        results = $.ui.autocomplete.filter(
          occupations,request.term);
      }
      response(results);
    },focus: function() {
      // PRevent value inserted on focus
      return false;
    },ui) {
      var terms = split(this.value);
      terms[0] = terms[0] + " for";
      // remove the current input
      terms.pop();
      // add the selected item
      terms.push(ui.item.value);
      // add placeholder to get the comma-and-space at the end
      terms.push("");
      this.value = terms.join("");
      return false;
    }
  });
});
<link rel="stylesheet" href="//code.jquery.COM/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<input type="text" id="occupation" />

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何根据句子结构在输入字段中创建多个自动完成?全部内容,希望文章能够帮你解决php – 如何根据句子结构在输入字段中创建多个自动完成?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。