如何通过$ .ajax发送数组

时间:2011-02-18 21:00:05

标签: jquery ajax arrays

我有一个新问题:) 我想通过$ .ajax将一个数组发送到PHP脚本。

<?php
$arrid=array("a","b","c","d","e","f");
?>

<script src="jquery.js"></script>
<script>
    var request = $.ajax({
      url: 'paidmail.php',
      dataType: 'json',
      data: 'id=<?php print_r($arrid); ?>',
      success: function(data) {
        console.log(data);
      }
    });
</script>

paidmail.php只是回显了id。 但我的控制台总是抛出这个例外:

unterminated string literal

那么如何通过$ .ajax将数组发送到另一个PHP脚本呢?

提前致谢:)

3 个答案:

答案 0 :(得分:2)

print_r()返回一个字符串,其中包含Javascript元字符,尤其是单引号',这将导致语法错误。使用json_encode()代替print_r,它将PHP数组转换为语法上有效的Javascript数据结构。

  data: 'id=<?php echo json_encode($arrid); ?>',

答案 1 :(得分:1)

替换:

data: 'id=<?php print_r($arrid); ?>'

使用:

data: {id: <?php echo json_encode($arrid);?>}

答案 2 :(得分:0)

Marc,你不也想utf-8编码吗?

data: 'id=<?php echo json_encode(array_map('utf8_encode' , $arrid)); ?>',

你应该也可以使用POST而不是GET:

type: "POST"