使用AJAX调用将数组发送到PHP脚本

时间:2013-03-25 11:21:26

标签: php javascript ajax arrays

我对ajax很新,我无法解决这个问题,我找不到其他讨论它的话题。 我要做的是用ajax数组发送到php脚本 该数组是一个关联数组 [index] [value] 。问题是,一旦我将数组发送到php,它就像是一个单维数组。 换句话说,一个例子:
如果数组是:[“apple”,“pear”,“orange”]
应该是:array [0]打印“apple”

但是在php中,数组只包含一个元素,这是所有字符串的串联。因此,如果我打印数组[1],我将获得“p”,数组[4]“e”等 我该如何解决?

提前感谢您的帮助。

var items = new Array();

CODE AJAX SCRIPT:

    $.ajax({

      type: "POST",
      url: "calculate.php",

      data: "items=" + items, 
      dataType: "html",

      success: function(msg)
      {
        var response = jQuery.parseJSON(msg);
        $('#second_results').html(response.output); 
      },
      error: function()
      {
        alert("Failed"); 
      }
    });

PHP:

$items = $_REQUEST["items"];

4 个答案:

答案 0 :(得分:0)

你有几个选择。 其中我提出了其中的2个。

1)

用逗号分隔参数并用逗号分隔。

// ...
data: "items=" + item1 + "," + item2 + "," item3,
// ...

$items = explode(',', $_REQUEST['items']);

2)

使用其他表示法:

// ...
data: "items[0]=" + item1 + "&items[1]=" + item2 + "&items[2]=" + item3,
// ...

$items = $_REQUEST['items'];

虽然我没有测试过,但它应该可以正常工作。 :)

你也可以看一下:Parse query string into an array让php处理正确的转换。

答案 1 :(得分:0)

答案 2 :(得分:0)

将此传递给ajax调用的数据:

        var a = {};
        a["key1"] = "val1";
        a["key2"] = "val2";
        a["key3"] = "val3";
$.ajax({

  type: "POST",
  url: "calculate.php",

  data: a ,
  dataType: "html",

  success: function(msg)
  {
    var response = jQuery.parseJSON(msg);
    $('#second_results').html(response.output); 
  },
  error: function()
  {
    alert("Failed"); 
  }
});

在Php Side:

 if($_SERVER["REQUEST_METHOD"]=="POST")
{
   foreach($_POST as $key=> $val){
   echo $key."and".$val;
   }
    die();
}

答案 3 :(得分:0)

$.ajax({

  type: "POST",
  url: "calculate.php",

  data: {items:items}, 
  dataType: "html",

  success: function(msg)
  {
    //your code if call succeeds
  },
  error: function()
  {
    //alert("Failed"); 
  }
});

请注意,您使用传递数组的方式不对,摆脱+和=符号并使用:相反,希望它有所帮助!