【问题标题】:It is possible to include Php variables or URL in Javascript in an If-statement?是否可以在 If 语句中包含 PHP 变量或 Javascript 中的 URL?
【发布时间】:2010-02-21 21:19:39
【问题描述】:

我想做这样的东西

my-php-file.php

  $lang = 'es';

my-js-file.js

if ($lang == es)
   {
   something-magical-happens;
   }

或者像这样:

if (URL == www.mydomain.com/index.php?lang=es)
   {
   something-magical-happens;
   }

【问题讨论】:

    标签: php javascript if-statement


    【解决方案1】:

    你可以生成 js on-the-fly

    我的.js.php:

    <?php echo "//Yes." ?>
    var i = "<?php echo $_GET['lang']; ?>";
    
    function doSomethingWithI(){
      alert(i);
    }
    

    现在,尝试包含

    <script type="text/javascript" src="my.js.php?lang=es"></script>
    

    在您的 html 中,您会看到 :)

    编辑:在此处查看实际操作:http://h.kissyour.net/so/phpjs/

    编辑:在我的服务器上编辑的示例更接近我在此处编写的内容。

    编辑:哦,是的。 别忘了清理你的代码!

    【讨论】:

    • 不要忘记 &lt;?php echo $_GET['lang']; ?&gt; 周围的引号和后面的分号。分号不是必需的,但如果脚本被缩小会导致问题;)
    • 我一头雾水,不应该是my.php.js吗?您是否包含带有 javascript“src 语句”()的 php 文件,这可能吗?
    • 试试看,你会看到 :] 不,my.js 说它的 js(为你),.php 告诉服务器先用 php 解析它:)
    • 我试过了,我在 URL 中添加了“localhost/tests/js-php/index.php?lang=es”,但什么也没发生。
    • janoChen:最近 10 分钟我玩了快速演示 - 检查编辑;)
    【解决方案2】:

    在这种特定情况下,为什么不简单地正确设置文档语言,然后使用 JavaScript 进行查看?

    &lt;html lang="es"&gt;

    在脚本中:

    if (document.documentElement.getAttribute('lang') === 'es') { alert('Spanish'); }

    【讨论】:

      【解决方案3】:

      您可以 - 正如公认的答案所示 - 使用 PHP 生成整个 javascript 文件。但是,如果您只是想访问一些有限的动态内容,这通常是矫枉过正的。如果您只是想访问一些需要 PHP 生成的变量,内联 javascript 可以正常工作。将此添加到您的 HTML 头部:

      <script type="text/javascript">
        <?php if( $condition == true ) : ?>
          var variable1 = <?php $var1 ?>,
              variable2 = <?php $var2 ?>;
        <?php else: ?>
          var variable1 = <?php $var1Alt ?>,
              variable2 = <?php $var2Alt ?>;
        <?php endif; ?>
      </script>
      

      只要确保在任何链接的脚本依赖于这些变量之前添加它

      【讨论】:

        猜你喜欢
        • 2013-08-24
        • 1970-01-01
        • 2015-06-09
        • 2023-03-15
        • 1970-01-01
        • 2016-09-02
        • 2018-07-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多