脚本宝典收集整理的这篇文章主要介绍了php – 如何根据句子结构在输入字段中创建多个自动完成?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_1@例:
@H_301_1@>学生5年@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年.如下图所示:
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,请注明来意。