Javascript 根据输入值更改AJAX参数

Javascript 根据输入值更改AJAX参数,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有两个输入与一个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

我有两个输入与一个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>
而不是。。 成员:“conner@asdsafsdf“

而不是:

data: {lookuptype: lookupinput},
使用类似于:

data: {lookuptype: lookuptype, lookupemail: lookupinput},
当使用对象作为ajax调用的
数据
值时,必须提供
键/值
对。在您的例子中,您提供了一个key=
lookuptype
和一个value=
,无论用户在email字段中键入什么。您没有为
电子邮件
发送
键/值

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

$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 lookuptype=$('#type').val();
var lookupinput=$('#lookupemail').val();

var 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 {
        //
      }
    }
  });
});

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

更新:我知道你想做什么。试试看,
{“+lookuptype,lookupinput}
@ochi,这行不通。@Juhana,我被纠正了,它行不通
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 {
        //
      }
    }
  });
});