我有一个新问题:) 我想通过$ .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脚本呢?
提前致谢:)
答案 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"