根据输入值更改 AJAX 参数

Changing AJAX Params based on input values

本文关键字:AJAX 参数 输入      更新时间:2023-09-26

我有两个输入与On Change ajax调用相关联。

            <input type="email" id="lookupemail" style="width: 225px;" placeholder="john.smith@ufcfit.com">
            <select id="type" style="width: 150px;">
            <option value="member"> Member </option>
            <option value="lead"> Lead </option>
            </select>

ajax调用工作正常,但它似乎没有通过我的查找类型。我的变量格式是否正确?

            <script>
            $("#lookupemail").keyup(function () {
              var lookuptype = $('#type').val();
              var lookupinput = $('#lookupemail').val();
              $.ajax({
              type: "POST",
              url: "includes/dbsearch.php",
              data: {lookuptype: lookupinput},
              success: function(server_response)
              {
                if(server_response != 0) {
                 // 
                } else {
                  //
                }
              }
              });
             }); 
            </script>

它通过:

      lookuptype:"conner@asdsafsdf"

而不是。。 成员:"conner@asdsafsdf"

而不是:

data: {lookuptype: lookupinput},

使用类似以下内容:

data: {lookuptype: lookuptype, lookupemail: lookupinput},

将对象用于 ajax 调用的data值时,必须提供key/value对。在您的情况下,您提供的键 = lookuptype 和值 = whatever-the-user-types-in-email-field 。您没有为email发送key/value对。

在服务器端,您可以使用以下键检索数据:

$lookuptype = $_POST['lookuptype'];
$lookupemail = $_POST['lookupemail'];

注意

如果您打算使lookuptype选择为单个key/value对选择键,则必须声明一个对象并对其进行操作:

          var lookuptype = $('#type').val();
          var lookupinput = $('#lookupemail').val();
          var fData = {};                      //<<<<<======
          fData[lookuptype] = lookupinput;    //<<<<<<======
          $.ajax({
          type: "POST",
          url: "includes/dbsearch.php",
          data: fData,                  //<<<<<<<=========
如果要

将对象作为数据参数传递,并将变量作为属性名称,则必须执行以下操作:

var ajaxData = {};
ajaxData[lookuptype] = lookupinput;

因此,总的来说,您应该这样做:

$("#lookupemail").keyup(function () {
  var lookuptype = $('#type').val();
  var lookupinput = $('#lookupemail').val();
  // Create the data object
  var ajaxData = {};
  ajaxData[lookuptype] = lookupinput;
  $.ajax({
    type: "POST",
    url: "includes/dbsearch.php",
    data: ajaxData,
    success: function (server_response) {
      if (server_response != 0) {
        // 
      } else {
        //
      }
    }
  });
});

现在您知道如何执行此操作,让我告诉您这是一个坏主意,因为服务器不知道在传递给它的数据中查找哪些属性。最好按照PeterKA的建议去做。