javascript - 通过Ajax动态更新数据列表

标签 javascript php ajax html html-datalist

我需要通过 ajax 更新 html 5 数据列表。
Html 代码在这里。

<body>
  <input type="text" id="bar" list="fruit" onkeyup="jsfun()" />
   <datalist id="fruit"></datalist>
</body>

JavaScript 的伪代码。

function jsfun(){
    //1- Get the last word from input field ("bar").
    var skw1 = document.getElementById("searchBar").value;
    var skw2 = skw1.split(" ");
    var skw = skw2[skw2.length-1];
   //2- Use Ajax to send data on server and get data result back
   /* 
   * here goes other javascript content for ajax
    */
    xmlhttp.open("GET","searchopt.php?skw="+skw,true);
            xmlhttp.send();
   //3- use javascript to update the datalist with those result which Ajax get.
}

看下面的网址,先写ma​​ng,然后删除它并写bann
它给出了一个建议
然后删除它,知道这次写ma​​ngo bann它不能给出任何建议。为什么但建议存在于数据库中。它只为第一个单词提供建议。
http://iws.uphero.com/qwe.html

最佳答案

好的...这就是问题所在。默认情况下,Datalist 将文本框中的内容与允许的选项相匹配。这些选项可以通过 AJAX 正确更改。不变的是“mango bann”不等于“mango”或“bann”。

作为解决方法,您可以使用 AJAX 函数在输入第二个单词后覆盖文本框。例如:

var skw1 = document.getElementById("searchBar").value;
var skw2 = skw1.split(" ");
var skw = skw2[skw2.length-1];
document.getElementById("searchBar").value = skw;

关于javascript - 通过Ajax动态更新数据列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16058621/

相关文章:

javascript - jQuery UI 对话框 - 更改打开对话框的内容 (Ajax)

javascript - onsubmit 返回 false 无效

php - composer config 添加不带名称的存储库位置

javascript - 为 ajax 调用显示的覆盖层,但在没有 ajax 的情况下调用时不显示

java - JSON 格式化(通过 jQuery AJAX 发送 JSON 到 Java/Wicket 服务器)

javascript - 如何确保点击时只有一个标签是彩色的?

javascript - 如何切换显示/隐藏标签

javascript - 跨浏览器事件对象规范化?

php - 组合两个 PHP 变量进行 MySQL 查询

php - Ajax成功if语句并回显mySQL查询结果