PHP:
<?php
$user_info = getInformation(); // gets user's information and puts it into an array, $user_info[0] is their ID, $user_info[1] is their username, $user_info[2] is their display name
?>
JQuery的:
$(document).ready(function() {
$(document).on("click", ".btn", function(event) {
event.preventDefault();
var post = $(this);
$.ajax({
url: 'assets/script.php',
type: 'POST',
data: { user_id: <?php echo $user_info[0] ?>, display_name: <?php echo $user_info[2] ?> },
success: function(data) {
alert(data);
}
});
});
});
但是,当我点击按钮(.btn
)时,它会在控制台中显示以下错误:
ReferenceError: Test is not defined
Test
是收到此错误的用户的显示名称。
怎么了?
答案 0 :(得分:2)
因为你错过了PHP变量周围的单引号,所以你是echo
。
data: { user_id: '<?php echo $user_info[0] ?>', display_name: '<?php echo $user_info[2] ?>' }
id有效,因为它是一个整数,但test
将被视为变量。这实际上是javascript看到的:display_name: test
这意味着它正在寻找变量test
。请注意,您正在尝试创建display_name: 'test'
。
然而,我发现所有这些都是一种可怕的做法。我从不使用php生成js,但替代方案超出了你的问题的范围。您至少可以将这些值的插入移动到js的开头,以便它们与代码的其余部分隔离。如果遇到这样的问题,将来会让你更轻松。