2011-02-18 124 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"