0

質問はかなり単純ですが、1 時間探し回っても何も見つかりませんでした。

ホームページとまったく同じページを作成するが、特定の div によってコンテンツが変更されている

例 index.html:

<html>
<head>
    <title>title</title>
    <style type="text/css">
    /* css goes here */
    </style>
</head>
<body>
    <div id="stay">I wont change</div>
    <div id="change">I will change</div>
</body>
</html>

そのため、インデックス ページから html 全体を (コードをコピーせずに) 継承するようにページをコーディングできるようにしたいと考えていますが、特定の div (ここでは idを使用#change) を異なるコンテンツにする必要があります。どうすればこれを行うことができますか?

4

5 に答える 5

3

コード スニペットを実際に「継承」するわけではありませんが、ページ コンテンツを再利用しようとしていることは理解しています。投稿されたコードから、変更がインデックスとどのように異なるかを正確に伝えるのは困難です。それは単なるコンテンツの変更ですか、それともインデックス ページにその div がありませんか?

いくつかのオプションがあります。div のコンテンツだけが変更されている場合は、同じ php ページを使用してから、jquery を使用して div のコンテンツを変更できます。

index.php

<? php include("page.php"); ?>

その他のページ

<? php include("page.php"); ?>
// javascript to modify div

ページをチャンクに分割し、必要に応じてそれらを含めることができるため、top.php と bottom.php を作成し、インデックス ページで行うことができます。

<? php include("top.php"); ?>
<? php include("bottom.php"); ?>

そして、あなたの同様のページは次のようなことができます

<? php include("top.php"); ?>
// custom stuff here
<? php include("bottom.php"); ?>

これらの解決策のいずれもうまくいかない場合は、常にテンプレート エンジンを使用してページ テンプレートを作成できますが、それはあなたの状況では少し難しいかもしれません。

于 2013-07-09T23:46:30.467 に答える
0

私はあなたがこの質問にタグを付けているのを見てphp、PHPの実装を含めて答えます。

3 ページを作成します。index.php about.phpfoo.php

目的は、一部のコンテンツを表示することですindex.phpが、すべてのコンテンツをabout.php

このページに電話するfoo.php

<html>
<head></head>
  <body>
        <p> Show this in index.php </p>
        <?php if($_SERVER['PHP_SELF'] === 'about.php'):  ?>
        <p> Show this in about.php </p>
        <?php endif;  ?>
   </body>
</html>

foo.phpあとは、両方のページに含めるだけです。

于 2013-07-09T23:48:25.213 に答える
0

必要なページを作成すると、次のことができます。

<html>
<head>
    <title>title</title>
    <style type="text/css">
    /* css goes here */
    </style>
</head>
<body>
    <div id="stay">I wont change</div>
    <?php
      if(basename($_SERVER['PHP_SELF'] == "other-page.php")){ ?>   

      <div id="change">I will change</div>

      <?php }else{ ?>

      <div id="change">Original div</div>

      <?php } ?>
</body>
</html>

それはファイル名を取り、それに基づいてコンテンツを変更できます(1ページのみの場合、それ以外の場合はそれに基づいて関数/クラスを記述します)。

于 2013-07-09T23:48:40.823 に答える
0

これを行うには多くの方法があります。ここでは 2 つ紹介しますが、それぞれに長所と短所があります。

まず、ページをまったく変更したくない場合は、GET 変数を介して渡されたページを含む小さな PHP コード セグメントを追加できます。例えば

<html>
<head>
    <title>title</title>
    <style type="text/css">
    /* css goes here */
    </style>
</head>
<body>
    <div id="stay">I wont change</div>
    <div id="change"><?php require($_GET['page']); ?></div>
</body>
</html>

URL を使用するmypage.php?page=home.phpと、home.php というファイルの内容がその div に自動的に含まれることになります。

もう 1 つの方法は、そのページを 2 つのセクションに分割し、使用する他のページに両方を含めることです。たとえば、コードを次のように 2 つの個別のファイルに分割します。

top.php:

<html>
<head>
    <title>title</title>
    <style type="text/css">
    /* css goes here */
    </style>
</head>
<body>
    <div id="stay">I wont change</div>
    <div id="change">

ボトム.php:

</div>
</body>
</html>

次に、PHPファイルで次を使用できます

require("top.php);
MY CONTENT HERE
require("bottom.php);

<?phpおよび?>タグ内にある場合は、このメソッドで HTML コードを出力するために echo を使用する必要があることに注意してください。

お役に立てれば。

于 2013-07-09T23:49:23.467 に答える
0

これはプレーンな HTML では実行できません。

PHP で行うには、まず次のようにテンプレート ファイルを作成します: (template.php)

<html>
<head>
    <title>title</title>
    <style type="text/css">
    * css goes here */
    </style>
</head>
<body>
    <div id="stay">I wont change</div>
    <div id="change"><?=$main_content?></div>
</body>
</html>

ここで、「お問い合わせ」ページを作成するとします。

<?php
    // in contact.php
    $main_content = "Contact me at my@email.com

    include "template.php";
?>

これにより、template.php の内容がページに書き込まれ、div#change 内の $main_content の値がエコーされます。

現在、テンプレートのサイズが大きくなるにつれて変数の管理が難しくなるため、これは一般的に嫌われています。物事を正気に保つために、他のすべての回答が示唆しているように、テンプレートエンジンを使用してください。

于 2013-07-09T23:50:06.407 に答える