【问题标题】:how to assign javascript variable value to php variable如何将javascript变量值分配给php变量
【发布时间】:2014-03-04 09:58:06
【问题描述】:

我已经声明了一个 javascript 变量

 var myJavascriptVar = 12345;

并且无法将该值分配给 php 变量;

 $myPhpVar = 'myJavascriptVar'; 

我知道 Ajax 可能是我的问题的解决方案。 但是我不知道如何使用 Ajax 来解决问题。

<html>
    <body>
        <script>
            var myJavascriptVar = 12345;
            <?php $myPhpVar='myJavascriptVar';?> 
        </script>
        <?php echo $myPhpVar; ?>
     </body>
</html>

【问题讨论】:

  • 你确定要给 PHP 一个 JS 值吗? PHP 在客户端不起作用。您所做的只会从您的代码中为该 php 提供一次值。它不会像这样在客户端将它提供给 php
  • 了解表单以轻松将数据发送到 PHP,而不是学习 AJAX 进行动态数据交换。

标签: javascript php jquery html ajax


【解决方案1】:

我认为使用 Cookie 是更好的解决方案 -

<script> document.cookie = "myJavascriptVar = " + myJavascriptVar </script>
<?php
     $myPhpVar= $_COOKIE['myJavascriptVar'];
?>

【讨论】:

  • 在第二次查看页面之前,这将不起作用。 PHP 代码在服务器上 执行, 将页面提交给浏览器。 &lt;script&gt; 块在构建页面时执行在浏览器中。执行$myPhpVar= $_COOKIE..时不会有任何cookie。
【解决方案2】:

如果您想要更动态的变量分配,请尝试将 ajax 与 jQuery.post() 一起使用。

不能直接赋值变量的原因是它们在不同的地方处理。

这就像尝试将鸡蛋添加到已经烤好的蛋糕中,相反,您应该将鸡蛋送到面包店以获得带有新鸡蛋的新蛋糕。这就是 jQuery's 发帖的目的。

使用额外的数据负载(HTML 或 XML,取决于返回的内容)提醒请求 test.php 的结果。

$.post( "test.php", { name: "John", time: "2pm" })
  .done(function( data ) {
    alert( "Data Loaded: " + data );
  });

【讨论】:

    【解决方案3】:

    我有一个更好的解决方案:在这里,在 .php 文件中,我有一个名为 javascriptVar 的变量。现在,我想将 javascriptVar 的值分配给名为 phpVar 的 php 变量。为此,我只需在 script 标记中通过 document.writeln 调用 javascript 变量。

        <?php 
            echo "<script>
                    var javascriptVar = 'success';
                 </script>";
            
        
            $phpVar = "<script>document.writeln(javascriptVar);</script>";
        ?>
    

    【讨论】:

    • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。
    • 现在,我尽力改进我的解决方案以更好地理解。谢谢
    【解决方案4】:

    PHP 是服务器端语言,JS 是客户端。最好的方法是使用javascript 创建一个cookie,然后在PHP 中读取该cookie

    <script type="text/javascript">
        document.cookie = "myJavascriptVar =12345";
    </script>
    
    <?php 
       $phpVar =  $_COOKIE['myJavascriptVar'];
    
       echo $phpVar;
    ?>
    

    【讨论】:

    • 在第二次查看页面之前,这将不起作用。 PHP 代码在服务器上 执行, 将页面提交给浏览器。 &lt;script&gt; 块在构建页面时执行在浏览器中。执行$phpVar= $_COOKIE..时不会有任何cookie。
    【解决方案5】:
    $msg = "<script>var n=document.getElementById('fil').val; document.write(n);</script>";
    
    echo $msg;
    

    【讨论】:

    • 编辑您的答案,添加一些描述。不是新评论。
    【解决方案6】:

    我猜你可以使用 cookie。

    1) 首先添加一个cookie jquery插件。

    2) 然后将该窗口宽度存储在 cookie 变量中。

    3) 在 PHP 中访问您的 cookie,例如 $_COOKIE['variable name']。

    http://www.w3schools.com/php/php_cookies.asp

    【讨论】:

      【解决方案7】:

      Javascript 将在客户端的浏览器中解释,您不能将其分配给在 SERVER 上解释的 PHP 变量。

      可行的解决方案:您可以通过ajax或表单提交来提交Javascript值。

      【讨论】:

        【解决方案8】:

        您应该会看到这些链接:

        Assign Javascript value to PHP variable

        Passing Javascript vars to PHP

        或者您可以使用 AJAX 请求或 POST 和 GET 方法来实现这一点。

        以下片段可能对您有所帮助:

        <?php 
           if(isset($_POST['isSubmit']))
           {
              // do something here
              echo $_POST["name"];
           }
        ?> 
        
        <form action="<?php $_SERVER['PHP_SELF'];?>" method="POST"> 
        Your name: <input type="text" name="name" /> 
        <input type="Submit" value="Submit" name="isSubmit"> 
        </form> 
        

        【讨论】:

          【解决方案9】:
          <html>
              <body>
                  <script>
                      myvar=12345;
                  </script>
                  <?php $var = "<script>return myvar;</script>" ?>
              </body>
          </html>
          

          【讨论】:

          【解决方案10】:

          请使用此代码,它在所有情况下都能正常工作。

          <script type="text/javascript">
          var width=screen.width;
          </script>
          <?php
               echo $myPhpVar= "<script>document.writeln(width);</script>";
          ?>
          

          【讨论】:

          • ...使用此代码,它在所有情况下都可以正常工作...请解释为什么此代码在所有情况下都可以正常工作.
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-19
          • 2023-03-26
          • 2014-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多