PHP代码从JS获取空字符串

时间:2012-12-08 17:19:33

标签: php javascript jquery ajax

我无法从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

3 个答案:

答案 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部分分开,以便客户端 - 服务器请求 - 响应能够完美地发生。