2011-02-18 123 views
0

我有一个新的问题:) 我想通过$ .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 

所以怎么可能通过$就数组发送到另一个PHP脚本?

感谢提前:)

回答

2

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

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

替换:

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

有:

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

马克,难道你也想为UTF-8编码?

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

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

type: "POST"