0

我无法将字符串从 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 不为空之前

先感谢您

PS我的页面是index.php

4

3 回答 3

1

PHP 代码在页面发送到浏览器之前运行。$_POST['latt']当您导航到页面时,该 PHP 块将简单地回显 的值。您需要在成功回调中访问来自服务器的响应:

$('#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);
            }

        });
    }
});
于 2012-12-08T17:22:05.587 回答
0

显然,在第一个页面加载时,它会给您空白警报,因为事件尚未发生,因此没有通过 ajax 发送任何值,并且回显部分在页面执行中没有任何条件。

但是当实际事件发生时,它将返回整个 index.php 页面作为响应,因此它们不可能再次发生实际警报。因此,我建议您将 javascript 和 php 部分分开,以便客户端-服务器请求-响应完美地发生。

于 2012-12-08T18:47:54.623 回答
0

您将对象包装在括号中(请参见该data: ()行)。删除括号,您的代码应该可以运行:

$.ajax({
    type: 'POST',
    url: 'index.php',
    data: { 'latt': val }
});
于 2012-12-08T17:23:08.407 回答