javascript - AJAX 实时搜索 - 向 PHP 发送多个值

标签 javascript html ajax

HTML代码

<input type="text" class="form-control input-lg" placeholder="Search1" onkeyup="showHint(this.value)">

<input type="text" class="form-control input-lg" placeholder="Search2" onkeyup="showHint(this.value)">

脚本

function showHint(str) {
    if (str.length == 0) { 
        document.getElementById("Hint").innerHTML = "";
        return;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("Hint").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET", "gethint.php?value=" + str, true);
        xmlhttp.send();
    }
}

此代码适用于单个 <input> .但是,我需要将两个输入值传递给 JavaScript 函数并将两个值发送到 gethint.php喜欢:

function showHint(str,str1) 
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("Hint").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET", "gethint.php?value=" + str+ "&ids=" +str1, true);
        xmlhttp.send();

}

我这样试过,但无法解决。

最佳答案

只需从函数的输入字段中获取值,而不是将它们传递给它。为此,您应该将 ID 添加到输入字段:

function showHint(str, str1) {
  // if no values are passed, get the data from the elements
  if (!str) str = document.getElementById("input1").value;
  if (!str1) str1 = document.getElementById("input2").value;
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
          document.getElementById("Hint").innerHTML = this.responseText;
      } else {console.log(this.status);}
  };
  xmlhttp.open("GET", "gethint.php?value=" + str+ "&ids=" +str1, true);
  xmlhttp.send();
}
<input id="input1" type="text" class="form-control input-lg" placeholder="Search1" onkeyup="showHint()">
    
<input id="input2" type="text" class="form-control input-lg" placeholder="Search2" onkeyup="showHint()">

有了这个,您仍然可以使用自定义字符串调用该函数

关于javascript - AJAX 实时搜索 - 向 PHP 发送多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50316046/

相关文章:

javascript - jQuery - 如果选中多个复选框,并且为每个复选框添加一个字符串到文本框

php - 关于我的 "question of the week"项目的建议

javascript - 使用 webpack 代码拆分,如何加载 block 和 HTML 布局?

html - Wordpress 帖子网格图像在分辨率高于 1280 时留下灰色空间

php - Ajax 在提交时显示消息而不刷新

php - 轮询器中的 Laravel 和 AJAX 偶发 401 错误

javascript - module.export 行为奇怪

javascript - 将 IEnumerable<DayOfWeek> 以哪种格式序列化到 javascript 客户端

javascript - 不同的单选按钮有不同的音频文件路径,但如何播放呢?

javascript - 添加新数据时自动刷新另一个页面 Laravel 5.8 Ajax