-1

自分で作成したカスタムMVCフレームワークを使用しています。ページの下部にJavaScriptファイルを動的に含めるにはどうすればよいですか?

アカウントページの作成(createaccount.php)

<?php include('header.php'); ?>

<div class="container maincontainer">
<h3>Create an Account </h3>

<?php include('footer.php'); ?>

私のタグはfooter.phpにあります。

別のページがあります

ログインページ(login.php)

<?php include('header.php'); ?>

<div class="container maincontainer">
<h3>Login </h3>

<?php include('footer.php'); ?>

基本的に、この2ページは異なるjavascriptファイルを使用します。ページごとに異なるjsを含めたい。注:同じfooter.phpファイルを使用しています

特定のページに基づいてjsコードをfooter.phpに動的に挿入するために記述できる関数/メソッドはありますか?専門家からのアドバイスは大歓迎です!

乾杯

4

5 に答える 5

2

私は通常、スクリプトの各ページに配列を作成してフッターに挿入することで、このような状況に対処します。

createaccount.php

<?php
$scripts = array('foo.js', 'bar.js');

include('header.php'); ?>

<!-- page specific content -->

<?php include('footer.php'); ?>

login.php

<?php
$scripts = array('http://example.com/baz.js');

include('header.php'); ?>

<!-- page specific content -->

<?php include('footer.php'); ?>

footer.php

<!-- whatever your footer content is -->

<?php
// script injection
foreach ($scripts as $url) { ?>
  <script src="<?=$url?>"></script>
<?php } ?>
</body>
</html>

これにより、各ページに必要な数のスクリプトを含めることができます。

通常、データベース接続やセッションなどを処理するためにすべてのページに最初に含まれ、そこに初期化が含まれるphpファイルが$scripts = array()あります。その場合、すべてのページは$scriptsデフォルトで空の配列に初期化されるため、ページを使用する必要がある場合にのみ、ページ自体に設定する必要があります。

于 2013-03-12T04:28:30.740 に答える
1

あなたはあなたのfooter.phpに以下を追加してみることができます

    <?php 
      $path = $_SERVER['PHP_SELF'];
      $file_info = pathinfo($path);
      $file_name = $file_info['file_name'];

      if($file_name == 'createaccount.php'){
         echo "<script src = 'your_script.js'></script>";
      }else if($file_name == 'login.php'){
         echo "<script src = 'another_script.js'></script>";
      }

    ?>

動的スクリプトが多い場合は、スイッチを使用することもできます

于 2013-03-12T04:19:08.893 に答える
0

おそらく$script、スクリプトを保存する変数をページに作成します...次に、フッターで作成しますif($script) echo $script;

于 2013-03-12T04:16:43.670 に答える
0

<script>スクリプトがそのページでのみ使用されている場合、フッターを含める直前にタグを追加できない理由はありません。

<script type="text/javascript">
// your code here
</script>
<?php include('footer.php'); ?>

スクリプト内で参照する必要のある要素は、スクリプトが評価されるまでにすでにDOMに追加されています。

于 2013-03-12T04:23:45.780 に答える
0

ページごとに異なるjsファイルを使用するのは賢明な選択ではないと思います。

ブラウザはダウンロード後にjsファイルをキャッシュします。

ただし、特定のページにインラインjsを使用できます。

含まれるpage_idとjsコードのハッシュ(phpの配列)を保持します

footer.phpのタグの直前で、そのpage_id</body>にリンクされたjsコードをインラインで印刷します。

例えば

$scripts = array('page1' => 'page1 js code', 'page2' => 'page2 js code');

そしてfooter.php直前に</body>

`echo '<script type="text/javascript">';
 echo $scripts['page1'];
 echo '</script>';

この場合は何も必要ありませんif/else

于 2013-03-12T04:27:18.203 に答える