【问题标题】:Inserting PHP variable value in Javascript file在 Javascript 文件中插入 PHP 变量值
【发布时间】:2012-02-12 04:45:00
【问题描述】:

我有一个 JavaScript 文件,它有一个硬编码的 BASEURL 变量,然后这个值被文件中的其他函数使用。 我希望动态设置这个 url 值,这样我就不需要为不同的安装手动更改它。是否可以将 PHP 变量值插入到 JavaScript 文件中?

【问题讨论】:

    标签: php javascript


    【解决方案1】:

    与其尝试将 PHP 混合到 javascript 文件中,不如在 HTML 模板中执行以下操作:

    <head>
        <script>
            var BASEURL = "<?php echo base_url(); ?>";
        </script>
        <script src="/path/to/my_script1.js"></script>
        <script src="/path/to/my_script2.js"></script>
    </head>
    

    这会设置变量并允许所有嵌入式脚本访问它。 base_url() 将替换为您使用 PHP 获取基本 url 的任何方法。

    【讨论】:

    • 我们能不能做到 在 .js 文件中?
    【解决方案2】:

    假设你有一个由 PHP 动态编写的 JS 文件;文件1.php

    <?php
      header('Content-Type: application/javascript');
      $var = $_GET['var1'];
      echo "jsvar = ".$var.";";
    ?>
    

    file1.php?var1=10 的客户端源代码将是

    jsvar=10;
    

    【讨论】:

      【解决方案3】:

      有几种方法:

      1. 通过 AJAX 加载 baseurl,但这可能会很慢,也许你需要早一点。

      2. 让javascript文件通过php解析器运行。然后你可以使用内联回声。

      3. 最方便最简单的方法是在页面的 html/php 输出中创建一个&lt;script&gt;var baseurl = '...';&lt;/script&gt;

      【讨论】:

      • 通过 AJAX?这太可怕了——会这样做吗?
      • 不,我不会,但这是可能的。我会做最后一点。
      【解决方案4】:

      您需要将文件设为 php 文件,而不是 js 文件。从那里你可以在文件中包含任何 PHP 标记来发挥你的动态魔法。使这一切正常工作的关键在于标题,您需要像这样设置:

      <?php
          Header("content-type: application/x-javascript");
            echo 'var js_var = ' . $php_var;
      ?>
      alert (js_var);
      

      这种技术也可以用于 CSS 文件。

      【讨论】:

      • application/x-javascript? application/javascript 已成为标准
      • 感谢所有反馈的家伙!最后采用了 Madmartigan 建议的解决方案,效果很好:)
      【解决方案5】:

      Heredoc 今天为我工作:

      <?php
      echo <<<ANYNAME
      
      <script LANGUAGE="JavaScript" type="text/javascript">
      <!--
      // code ...
      var myLatlng = new google.maps.LatLng($lat, $lon);
      // code cont. ...
      //-->
      </script>
      
      ANYNAME;
      ?>
      

      http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

      php variable in html no other way then: <?php echo $var; ?>

      【讨论】:

        猜你喜欢
        • 2013-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-13
        • 1970-01-01
        • 1970-01-01
        • 2012-01-05
        相关资源
        最近更新 更多