我无法从JS代码获取字符串到PHP代码
这是代码,当我按下输入文本输入时初始化:
$('#user').keypress(function(e) {
if(e.which == 13) {
var val = $(this).val();
$.ajax({
type: 'POST',
url: 'index.php',
data: ({'latt':val
})
});
<?php
$val = $_POST['latt'];
echo "alert('$val')";
?>
}
});
其中#user是此文本输入的ID
当我运行代码时,我看到没有显示任何内容的警报
在我确切知道JS val不为空之前
提前谢谢
P.S。我的页面是index.php
答案 0 :(得分:1)
PHP代码在页面发送到浏览器之前运行。当您导航到页面时,PHP块将简单地回显$_POST['latt']
的值。您需要在成功回调中访问服务器的响应:
$('#user').keypress(function(e) {
if (e.which == 13) {
var val = $(this).val();
$.ajax({
type: 'POST',
url: 'index.php',
data: {
'latt': val
},
success: function(data) {
alert(data.responseText);
}
});
}
});
答案 1 :(得分:0)
您将对象括在括号中(请参阅data: ()
行)。删除括号,您的代码应该起作用:
$.ajax({
type: 'POST',
url: 'index.php',
data: { 'latt': val }
});
答案 2 :(得分:0)
显然,在第一页加载时,它会在事件尚未发生时给你空白警告,因此没有通过ajax发送任何值,并且echo部分在页面执行时没有任何条件。
但是当实际事件发生时,它会将整个index.php页面作为响应返回,因此它们无法再次发生实际的警报事件。所以我建议你将javascript和php部分分开,以便客户端 - 服务器请求 - 响应能够完美地发生。