一尘不染

如何将JavaScript变量用作PHP变量?

javascript

我正在尝试将JavaScript变量作为PHP变量包含在PHP代码中,但是这样做有问题。单击按钮时,将调用以下功能:

<script type="text/javascript">
    function addTraining(leve, name, date)
    {
        var level_var = document.getElementById(leve);
        var training_name_var = document.getElementById(name);
        var training_date_var = document.getElementById(date);

        <?php
            $result = "INSERT INTO training(level, school_name, training_date) VALUES('level_var', 'training_name_var', 'training_date_var')" or die("Query not possible.");
        ?>

</script>

可能吗?


阅读 346

收藏
2020-05-01

共1个答案

一尘不染

PHP在服务器端运行。JavaScript在请求页面的用户的浏览器中在客户端运行。到执行JavaScript时,服务器上都无法访问PHP。请阅读本文,了解有关客户端和服务器端编码的详细信息。

简而言之,这是什么:

  • 您在办公桌下方的计算机上的浏览器中单击链接
  • 浏览器创建一个HTTP请求并将其发送到Internet上的服务器
  • 服务器检查他是否可以处理请求
  • 如果请求是针对PHP页面的,则将启动PHP解释器
  • PHP解释器将在您请求的页面中运行所有PHP代码
  • PHP解释器将不运行任何JS代码,因为它对此一无所知
  • 服务器会将解释器组装的页面发送回您的浏览器
  • 您的浏览器将呈现页面并将其显示给您
  • JavaScript在您的计算机上执行

在您的情况下,PHP会将JS代码写入页面,因此可以在浏览器中呈现页面时执行它。到那时,您的JS代码段中的PHP部分不再存在。它已在服务器上执行。它创建了一个$result包含SQL查询字符串的变量。您没有使用它,因此当页面发送回浏览器时,它就消失了。在浏览器中呈现页面时,请查看源代码。您会发现放置PHP代码的位置没有任何东西。

做您想要做的事情的唯一方法是:

  • 重定向到PHP脚本或
  • 对PHP脚本进行AJAX调用

与您要插入数据库的值。

2020-05-01