如何使用ajax传递一个字符串数组?

时间:2013-09-03 15:34:05

标签: php javascript jquery ajax json

我使用此ajax将字符串数组传递给另一个页面。

这是nomes.php上的数组

[ 'Home','A empresa','funcionarios','Quem Somos?','Historia','Inicio',]

这是代码,警报不起作用 - 任何人都可以帮忙吗?

$.ajax({
 type: 'post',
 url: 'nomes.php',
 beforeSend: function(x) {
  if(x && x.overrideMimeType) {
   x.overrideMimeType("application/j-son;charset=UTF-8");
  }
 },
 dataType: "json",
 success: function(data){
    v=data;
    alert(v);
 }
});

3 个答案:

答案 0 :(得分:1)

您需要将PHP数组编码为JSON数组。

<?php
    echo (json_encode($myPhpArray));
?>

答案 1 :(得分:0)

您可以使用stringify将数组序列化为JSON以传递它们。将此添加到您的Ajax调用:

data: JSON.stringify(arr);

用您的JavaScript数组替换arr。这需要一个插件。有关详细信息,请查看this answer

或者,如果您的数组是PHP,而不是JavaScript,您可以直接回显它:

data: <?php echo json_encode($arr) ?>,

答案 2 :(得分:0)

如果您尝试将json传递给服务器,可以这样做:

var strArray = ['str1', 'str2', 'str3'];
$.ajax({
 type: 'post',
 url: 'nomes.php',
 data: {strarray: strArray},
 dataType: "json",
 success: function(data){
    v=data;
    alert(v);
 }
});

如果您尝试接收它,则需要在php端设置标题:

header('content-type: application/json');
echo json_encode(array('str1', 'str2', 'str3'));