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

Sel*_*lom 19 javascript php

我试图将PHP变量作为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>
Run Code Online (Sandbox Code Playgroud)

可能吗?

Gor*_*don 39

PHP在服务器端运行.JavaScript在请求页面的用户的浏览器中运行客户端.在执行JavaScript时,无论如何都无法访问服务器上的PHP.请阅读本文,其中包含有关客户端与服务器端编码的详细信息.

简而言之,这是:

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

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

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

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

使用要插入数据库的值.


小智 23

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

<?php $abc = "<script>document.write(jvalue)</script>"?>   
</script>
<?php echo  'php_'.$abc;?>
Run Code Online (Sandbox Code Playgroud)

  • 这在很多层面都是错误的,具有欺骗性 (8认同)
  • 它工作得很好,为什么它不是@ argentum47的答案 (4认同)
  • 这甚至都不是答案 (3认同)

Don*_*son 5

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