【问题标题】:Send PHP variable to javascript function [duplicate]将PHP变量发送到javascript函数[重复]
【发布时间】:2012-11-23 18:49:48
【问题描述】:

我有一个生成变量的 php 文件,我希望将变量放入一个 javascript 函数中,该函数由主页上的 onclick 调用。这可以从 PHP 发送到 javascript 吗?

【问题讨论】:

  • 每次点击后是否需要不同(例如,产生当前服务器端时间的脚本)?如果是这样,您可能需要Ajax。

标签: php javascript post get


【解决方案1】:

您可以执行以下操作:

<script type='text/javascript'>
    document.body.onclick(function(){
        var myVariable = <?php echo(json_encode($myVariable)); ?>;
    };
</script>

【讨论】:

  • 如何指定我从哪个 php 文件中获取变量?
  • 为什么需要 json_encode ?为什么不简单地回显 $myVariable ?
  • @George02 json_encode 将转义字符串,以便在您的javascript中安全使用
  • 当在单独的 js 文件中的函数内部使用时,这将给出“Unexpected token '&lt;'”。
【解决方案2】:

只写:

<script>
    var my_variable_name = "<?php echo $php_string; ?>";
</script>

现在它可以在上述代码下方的任何位置以 my_variable_name 的名称作为 JavaScript 变量使用。

【讨论】:

    【解决方案3】:

    您的 JavaScript 必须在 PHP 解析文件中定义。

    例如,你可以在 index.php 中放置

    <?php
    $time = time();
    ?>
    <script>
        document.write(<?php echo $time; ?>);
    </script>
    

    【讨论】:

      【解决方案4】:

      如果我对您的理解正确,您应该可以按照以下方式进行操作:

      function clicked() {
          var someVariable="<?php echo $phpVariable; ?>";
      }
      

      【讨论】:

      • 你需要用分号结束
      • @username 待定 我是否必须将整个 php 文件放在括号内?如果没有,我将如何指定变量来自哪个 php 文件?
      【解决方案5】:

      一个很好的选择是使用 jQuery/AJAX。 Look at these examples 并在您的服务器上试用它们。在此示例中,在 FILE1.php 中,请注意它传递了一个空白值。如果你愿意,你可以传递一个值,它可能看起来像这样(假设 JavaScript 变量名为 username 和 password:

      data: 'username='+username+'&password='+password,
      

      在 FILE2.php 示例中,您可以像这样检索这些值:

      $uname = $_POST['username'];
      $pword = $_POST['password'];
      

      然后进行 MySQL 查找并返回值:

      echo 'You are logged in';
      

      这会将消息You are logged in 传递给FILE1.php 中的成功函数,并且消息字符串将存储在名为“data”的变量中。因此,成功函数中的alert(data); 行会提醒该消息。当然,你可以echo 任何你喜欢的东西,甚至是大量的 HTML,比如整个表格结构。

      Here is another good example 进行审核。

      方法是创建表单,然后使用 jQuery 检测按钮按下并通过 AJAX 将数据提交到辅助 PHP 文件。上面的例子展示了如何做到这一点。

      辅助 PHP 文件接收变量(如果已发送)并返回响应(无论您选择发送什么)。然后,该响应会在您的 AJAX 调用的 Success: 部分中显示为“数据”(在这些示例中)。

      jQuery/AJAX 代码是 javascript,因此您有两种选择:您可以将其放在 PHP 主文档中的 &lt;script type="text/javascript"&gt;&lt;/script&gt; 标记中,或者您可以将 &lt;?php include "my_javascript_stuff.js"; ?&gt; 放在 PHP 文档的底部。如果您使用的是 jQuery,请不要忘记在给出的示例中包含 jQuery 库。

      在您的情况下,听起来您几乎可以复制我建议的第一个示例,不发送数据并在 AJAX 成功函数中接收响应。但是,无论您需要对这些数据做什么,都必须在 success 函数中执行。起初看起来有点奇怪,但它确实有效。

      【讨论】:

        【解决方案6】:

        您可以将 PHP 值传递给 JavaScript。 PHP 将在服务器端执行,因此将计算该值,然后您可以将其回显到包含 javascript 的 HTML。然后,javascript 将在客户端浏览器中执行,并使用 PHP 在服务器端计算的值。

        <script type="text/javascript">
            // Do something in JavaScript
            var x = <?php echo $calculatedValue; ?>;
            // etc..
        </script>
        

        【讨论】:

          猜你喜欢
          • 2012-01-01
          • 2013-03-27
          • 2015-11-16
          • 1970-01-01
          • 2013-01-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多