如何使用ajax发布超过1个var

时间:2017-08-17 17:36:37

标签: php jquery ajax

我一直在谷歌搜索一种方法,但我发现的一切都没有帮助我。 我不确定如何发布以下所有变量,如果我只选择其中一个变量,它会发布得很好,并将其放入正确的数据库列。

任何帮助都会非常感激。

        function submit() {
      var mm10  = $('#10MM'),
          mm16  = $('#16MM'),
          mm7   = $('#7MM'),
          mm2   = $('#2MM'),
          fines = $('#Fines'),
          bark  = $('#Bark'),
          cqi   = $('#CQI');

      $.ajax({
        type: "POST",
        url: "classes/Post/ChipSubmit.php",
        data: ,
        success: function(){
            $("#successMessage").show();
        }
      });
    };

2 个答案:

答案 0 :(得分:6)

你可以用两种方式做到这一点。一个使用数组,或两个使用对象:

function submit() {
  var mm10 = $('#10MM').val(),
    mm16 = $('#16MM').val(),
    mm7 = $('#7MM').val(),
    mm2 = $('#2MM').val(),
    fines = $('#Fines').val(),
    bark = $('#Bark').val(),
    cqi = $('#CQI').val();

  $.ajax({
    type: "POST",
    url: "classes/Post/ChipSubmit.php",
    data: [mm10, mm16, mm7, mm2, fines, bark, cqi],
    success: function() {
      $("#successMessage").show();
    }
  });
} // Also you don't need a semicolon here.

此外,您不需要在函数末尾使用分号。

使用数组更容易,如果您想要更高的精度,请使用对象:

function submit() {
  var mm10 = $('#10MM').val(),
    mm16 = $('#16MM').val(),
    mm7 = $('#7MM').val(),
    mm2 = $('#2MM').val(),
    fines = $('#Fines').val(),
    bark = $('#Bark').val(),
    cqi = $('#CQI').val();

  $.ajax({
    type: "POST",
    url: "classes/Post/ChipSubmit.php",
    data: {
      "mm10": mm10,
      "mm16": mm16,
      "mm7": mm7,
      "mm2": mm2,
      "fines": fines,
      "bark": bark,
      "cqi": cqi
    },
    success: function() {
      $("#successMessage").show();
    }
  });
} // Also you don't need a semicolon here.

在服务器端,您可以通过$_POST超级全局来获取它们。使用var_dump($_POST)找出它有什么。

答案 1 :(得分:0)

有点像Praveen Kumar建议,你可以创造一个物体。有一件事我很好奇,看起来你正在传递jQuery对象作为你的数据?如果是这种情况,$_POST会说[object][Object]之类的内容,或者对我来说它会抛出TypeError并破坏所有内容。

var form_data = {};

 form_data.mm10 = $('#10MM').val(); // Input from a form
 form_data.mm16 = $('#16MM').val(); // Input from a form
 form_data.mm7 = $('#7MM').val(); // Input from a form
 form_data.mm2 = $('#2MM').text(); // Text from a div
 form_data.fines = $('#Fines').text();
 form_data.bark = $('#Bark').text();
 form_data.cqi = $('#CQI').text();

  $.ajax({
    type: "POST",
    url: "classes/Post/ChipSubmit.php",
    data: form_data,
    success: function() {
      alert('success');
    }
  });
}

然后,要在PHP中获取这些值,请使用:

$_POST[mm10] // This contains '10MM' or the value from that input field
$_POST[mm16] // This contains '16MM' or the value from that input field
$_POST[mm7] // This contains '7MM' or the value from that input field
$_POST[mm2] // This contains '2MM' or the value from that input field
And so on...

我试图将a jsFiddle for you放在一起,虽然它没有显示PHP部分。单击submit查看控制台以查看发布的数据。