PHP中的JavaScript脚本使用Switch

时间:2018-03-08 15:17:26

标签: javascript php

首先我要说的是,我对PHP的了解最多,所以我不确定我所尝试的是否正确。

基本上,我需要PHP根据变量(在本例中为语言)运行特定脚本。根据我在网上找到的内容,这需要使用switch语句,但它似乎无法正常运行。下面是代码的开头

<?php
$lang = "en-US";

switch ($lang) {
    case "en-US":
        <script type="text/javascript">
            (function() {
                var se = document.createElement('script'); se.type = 'text/javascript'; se.async = true;
                se.src = '//storage.googleapis.com/code.rival.com/js/3ca9-4824-43d0-81ec-0c04fb80901b.js';
                var done = false;
                se.onload = se.onreadystatechange = function() {
                    if (!done&&(!this.readyState||this.readyState==='loaded'||this.readyState==='complete')) {
                        done = true;
                    }
                };
                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(se, s);
             })();
       </script>
;
break;
case "de-DE":
    <script type="text/javascript">
        (function() {
            var se = document.createElement('script'); se.type = 'text/javascript'; se.async = true;
            se.src = '//storage.googleapis.com/code.rival.com/js/d8d2-9653-427d-bcb6-13e135d6195e.js';
            var done = false;
            se.onload = se.onreadystatechange = function() {
                if (!done&&(!this.readyState||this.readyState==='loaded'||this.readyState==='complete')) {
                    done = true;
                }
            };
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(se, s);
         })();
</script>
;
break;

还有更多的代码,但我不想在这里放置一堵代码。最后的默认值使用与&#34; case&#34; en-US&#34;&#34;相同的JavaScript。

我希望这个问题有道理。

1 个答案:

答案 0 :(得分:1)

你不能混合使用javascript和php。如果你需要输出javascript,你应该echo或者离开php。

另外,我不确定是否存在更多差异,但如果它只是脚本的名称,则可以使用数组删除所有重复的javascript。

例如:

<?php
$lang = "en-US";

// Store all combinations
$languageScripts = [
  'en-US' => '3ca9-4824-43d0-81ec-0c04fb80901b.js',
  'de-DE' => 'd8d2-9653-427d-bcb6-13e135d6195e.js',
];

// Output the javascript
?>
    <script type="text/javascript">
        (function() {
            var se = document.createElement('script'); se.type = 'text/javascript'; se.async = true;

            // Here you add the script you want to run:
            se.src = '//storage.googleapis.com/code.rival.com/js/<?php echo $languageScripts[$lang]; ?>';

            var done = false;
            se.onload = se.onreadystatechange = function() {
                if (!done&&(!this.readyState||this.readyState==='loaded'||this.readyState==='complete')) {
                    done = true;
                }
            };
            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(se, s);
         })();
    </script>
<?php
// continue with your php script