JavaScript变量转换为PHP变量

3

我希望将一个javascript变量转换为php变量。

这是我使用的jQuery代码:

$('#add').click(function(){
    $.post(
        'user.php', 
        {saveidnumber: idnumber}, 
        function(){
            console.log('done')
        }
    );  
});

php:

if(isset($_POST['saveidnumber'])){
    $saveid = $_POST['saveidnumber'];
    echo $saveid;
}

看起来像是jQuery工作正常,因为控制台没有错误,但php从未echo出$saveid变量。我做错了什么?


1
你想在哪里看到 PHP 的 echo 输出? - Kirill Pisarev
function(res){ console.log(res); }你必须在 JavaScript 部分接收它。 - Suchit kumar
3个回答

4

尝试:

$.post('user.php', {saveidnumber: idnumber},
    function(result){
        console.log(result)
});

变量result是在user.php中打印出的HTML。

变量$saveid可以在控制台中查看。


1

当你输出$saveid时,它会作为响应返回,因此你需要传递函数参数来捕获服务器端返回的值,并可以在示例中打印出来。

$('#add').click(function()
    {
        $.post('user.php', {saveidnumber: idnumber}, 
                function(data){
                   console.log(data);  //here return your $saveid;
                }
              );    
    });

1
之前的回答有什么不同之处? - Kirill Pisarev
1
@KirillPisarev 不同之处在于回答的人应该解释原因。 - Suchit kumar
@KirillPisarev 这不是我的答案。 - Suchit kumar
@KirillPisarev 我会用适当的注释和格式化输出来解释并回答,以便OP能够轻松理解。 - Sadikhasan
@SuchitKumar 抱歉,对不起。针对Sadikhasan:嗯,我完全确定你的第一个回答没有解释,如果不是的话,对我的粗心大意感到抱歉。 - Kirill Pisarev
1
我忘记关闭其他浏览器选项卡中的同一页,所以这里是你的答案看起来像... - Kirill Pisarev

0

我认为你误解了PHP无状态概念与ajax异步请求的混合。它的工作方式如下: 1. 有人发送请求以获取user.php网站 2. 服务器接收并处理请求 3. 服务器返回所请求的网站,就这样

因此,当您使用javascript(在您的情况下是jQuery)从该页面内部发送POST时,它是一个单独的请求和单独的响应。这意味着您必须在javascript中自己处理此响应。请参见以下示例:

$('#add').click(function()
{
    $.post('user.php', {saveidnumber: idnumber}, 
        function(data){
           console.log('done');
           $('.some-class').text(data);
        }
    );    
});

这将向任何具有类some-class的HTML元素插入响应,例如

<div class="some-class"></div>

啊,所以无法将JavaScript变量保存到PHP中?我想要将JavaScript保存到PHP的原因是最终想要将它们保存到数据库中。 - vweltje
那是另一件事。我在你的代码中看到了 echo,以为你只是想输出一些值。我知道你想做什么,但你用错了词。你不想把 js 变量保存到 php 中,而是想将此变量发送到 php。更准确地说,你想发送此变量的值。在这种情况下,你的问题中的代码几乎正确 - 它可以工作,但你看不到回显的值(我已经解释了原因)。相反,将 echo $saveid; 更改为 file_put_contents('output.txt', $saveid);。执行它并查看 output.txt 文件。 - Szymon Sadło

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接