首页 > 解决方案 > 在特定包含的 php 文件中加载 js 文件

问题描述

我发现在 php 文件中加载 js 文件存在一些问题。我有文件 php admin-pp-sipp-litbang.php。在该文件中,我包含了一些带有switch case的 php 文件,如下所示:

 <div class="col-sm-9 col-sm-offset-3 col-lg-10 col-lg-offset-2 main">
        <?php
        switch (@$_GET['modul']) {
            case "beranda":
                include "tampilan-admin-pp/beranda.php";
                break;
            case "permintaanakun":
                include "tampilan-admin-pp/permintaanakun.php";
                break;
            case "permintaanpp":
                include "tampilan-admin-pp/permintaanpp.php";
                break;
            case "chat":
                include "tampilan-admin-pp/chat.php";
                break;
            case "detailsproposal":
                include "tampilan-admin-pp/details_proposal.php";
                break;
            case "detailspermintaanakun":
                include "tampilan-admin-pp/details_permintaanakun.php";
                break;
            case "detailspengguna":
                include "tampilan-admin-pp/details_pengguna.php";
                break;
            default:
                include "tampilan-admin-pp/beranda.php";
        }
        ?>
    </div><!--/.main-->

之后,我在 admin-pp-sipp-litbang.php 的 close body tag 附近加载 tampilan-admin-pp/chat.php 的 js 文件。这是js文件。

        <script id="message-template" type="text/x-handlebars-template">
    <li class="clearfix">
        <div class="message-data align-right">
            <span class="message-data-time" >{{time}}, Today</span> &nbsp; &nbsp;
            <span class="message-data-name" >Olia</span> <i class="fa fa-circle me"></i>
        </div>
        <div class="message other-message float-right">
            {{messageOutput}}
        </div>
    </li>
</script>

<script id="message-response-template" type="text/x-handlebars-template">
    <li>
        <div class="message-data">
            <span class="message-data-name"><i class="fa fa-circle online"></i> Vincent</span>
            <span class="message-data-time">{{time}}, Today</span>
        </div>
        <div class="message my-message">
            {{response}}
        </div>
    </li>
</script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.0/handlebars.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/list.js/1.1.1/list.min.js'></script>

<script type="text/javascript" src="tampilan-admin-pp/chat/jss/load_list_user_chat.js"></script>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/UserOnline.js"></script>

<script type="text/javascript" src="tampilan-admin-pp/chat/jss/index.js"></script>

问题是 tampilan-admin-pp/chat.php 的 js 文件会影响另一个包含的文件。如何仅为 tampilan-admin-pp/chat.php 加载该 js 文件?

标签: javascriptphp

解决方案


有什么理由不能将<script>admin-pp-sipp-litbang.php 底部的标签移动到 tampilan-admin-pp/chat.php 中吗?

如果您需要将它们包含在 admin-pp-sipp-litbang.php 的末尾,那么您将需要在车把模板之后使用另一个 switch 语句或类似的逻辑。

更新:

问题是您的 php 文件有条件地包含在switch语句中,但您的“聊天”javascript 文件每次都包含在内。您还需要有条件地包含 javascript 文件。您可以将<script>标签添加到原始switch语句中,但通常最好在</body>结束标签之前加载 javascript,就像您所做的那样。为了保持这个特性,switch在包含 js 文件之前,在 admin-pp-sipp-litbang.php 的底部添加另一个语句。

所以

<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.0/handlebars.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/list.js/1.1.1/list.min.js'></script>

<script type="text/javascript" src="tampilan-admin-pp/chat/jss/load_list_user_chat.js"></script>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/UserOnline.js"></script>

<script type="text/javascript" src="tampilan-admin-pp/chat/jss/index.js"></script>

变成:

<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.0/handlebars.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/list.js/1.1.1/list.min.js'></script>

<?php switch($_GET['modul']):
    case 'chat': ?>
        <script type="text/javascript" src="tampilan-admin-pp/chat/jss/load_list_user_chat.js"></script>
        <script type="text/javascript" src="tampilan-admin-pp/chat/jss/UserOnline.js"></script>
        <script type="text/javascript" src="tampilan-admin-pp/chat/jss/index.js"></script>
    <?php break;?>
<?php endswitch;?>

这样,您可以在文件顶部添加case与其他 s 匹配的其他语句,以有条件地包含它们的 javascript。include


推荐阅读