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

IT技术 php javascript
2021-02-06 20:29:20

我正在尝试将 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>

是否可以?

6个回答

PHP 在服务器端运行。JavaScript 在请求页面的用户的浏览器中在客户端运行。到 JavaScript 执行时,无论如何都无法访问服务器上的 PHP。请阅读这篇文章,详细了解客户端与服务器端编码

简而言之,发生的事情是这样的:

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

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

做你想做的事情的唯一方法是:

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

使用要插入数据库的值。

<script type="text/javascript">
var jvalue = 'this is javascript value';

<?php $abc = "<script>document.write(jvalue)</script>"?>   
</script>
<?php echo  'php_'.$abc;?>
这甚至不是答案
2021-03-17 20:29:20
嘿,我需要类似类型的东西,但问题是 jvalue 变量的值是通过Promise来的,而我在 $abc 中未定义。有人可以帮帮我吗?
2021-03-24 20:29:20
它工作正常那么为什么它不是答案@argentum47
2021-03-30 20:29:20
这是一个废话的答案。运行在服务器上的 PHP 如何获得document.write?
2021-04-02 20:29:20
这在很多层面上都是错误的,具有欺骗性
2021-04-03 20:29:20

您似乎混淆了客户端和服务器端代码。单击按钮时,您需要将变量发送(发布、获取)到可以执行 php 的服务器。您可以提交页面或使用 ajax 调用只提交数据。-大学教师

PHP 在服务器上运行。它输出一些文本(通常)。然后由客户端解析。

在客户端解析期间和之后,JavaScript 会运行。在这个阶段,PHP 脚本做任何事情都为时已晚。

如果您想将任何内容返回给 PHP,您需要发出一个新的 HTTP 请求并在其中包含数据(在查询字符串(GET 数据)或消息正文(POST 数据)中)。

您可以通过以下方式执行此操作:

  • 设置位置(仅限 GET)
  • 提交表单(使用FormElement.submit()方法)
  • 使用XMLHttpRequest对象(该技术通常称为 Ajax)。各种库在这里为您完成了一些繁重的工作,例如YUIjQuery

无论您选择哪个选项,PHP 本质上都是相同的。$_GET或 中读取$_POST,运行您的数据库代码,然后将一些数据返回给客户端。

几周前我遇到了和你一样的问题;但我发明了一个绝妙的解决方案来在 PHP 和 JavaScript 之间交换变量。它对我很有效:

  1. 在 HTML 页面上创建隐藏表单

  2. 在该隐藏表单中创建一个文本框或文本区域

  3. 在脚本中编写所有代码后,将变量的最终值存储在该文本框中

  4. 在 PHP 中使用 $_REQUEST['textbox name'] 行来访问 JavaScript 变量的值。

我希望这个技巧对你有用。

你能举一个有效的例子吗
2021-03-23 20:29:20
需要示例代码,请
2021-04-01 20:29:20