【问题标题】:Post Variable and Array from JQuery to PHP in same $ajax request在同一个 $ajax 请求中将变量和数组从 JQuery 发布到 PHP
【发布时间】:2014-06-07 04:30:42
【问题描述】:

我在 JQuery 中有数组和变量,我想知道我可以将单个 $ajax jquery 请求中的数组和变量都发布到我的 php 页面。如果是,那么我将如何从 Jquery 发布数据以及我将如何在 PHP 页面中处理。

var get_id = [], get_product= [];  //Array
    var day = $("#day").val();  // Variable
    var month = $("#month").val(); // Variable
    var year = $("#year").val();   // Variable

谢谢

【问题讨论】:

  • $.POST (jquery) 和 $_POST in php.. 或.. $.AJAX (jQuery) 和 $_POST 或 $_GET 根据您的喜好。
  • 您的答案仅对变量是正确的,但我的问题是如何在单个 $ajax 请求中同时发布变量和数组
  • 您可以通过 ajax 传递所有内容。您可以使用相同的方法传递字符串、数字或数组。检查这个:stackoverflow.com/questions/2013728/…
  • 当我使用 $_POST['id']; 时,我得到输出为 Array 文本;其中id 是由 jquery $ajax 请求发布的数组
  • 你试过用json吗?

标签: javascript php jquery ajax arrays


【解决方案1】:

如果你想发送复杂的数据类型,比如数组,对你的数据进行 JSON 编码,然后在 PHP 端解码会更容易:

var data = {
    get_id : get_id,
    get_product : get_product,
    day : day,
    month : month
};

$.post('url', { data : JSON.stringify(data) }, function(response){
    // success
});

在 PHP 方面:

$data = json_decode($_POST['data']);

echo $data->day;
foreach($data->get_product as $p){
    ...
}

【讨论】:

    【解决方案2】:

    无需对 JSON 进行编码/解码。保持简单,按原样发布数据对象:

    $.ajax('/index.php', {
       type: 'POST',
       data: {
          get_id:[],
          get_product:[],
          day: $("#day").val(),
          month: $("#month").val(),
          year: $("#year").val()
       }
    });
    

    PHP端可以看到post数据:

    var_dump($_POST); // post is a keyed (nested) array.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-09
      • 1970-01-01
      相关资源
      最近更新 更多