1

ページの URL に基づいてコンテンツを動的に読み込むにはどうすればよいですか。

例: profile.html#example-contenet1、profiles.html#example-contenet2

#example-contenet ごとに、異なるページ コンテンツを読み込みます。

これを JSFiddle に入れようとしましたが、php バックエンドが必要になる可能性があると思います。 http://jsfiddle.net/JEUSz/3/

多分このようなもの:

switch ($_POST['name']) {
case 'example-name1':
    echo "<img src='img/pic.jpg' />"; 
    echo "<img src='img/pic.jpg' />";
    echo "hi";
    break;
case 1:
    echo "i equals 1";
    break;
case 2:
    echo "i equals 2";
    break;
default:
    echo 'fail';
    break;
}
4

6 に答える 6

2

それがサーバーサイド開発の全体的な目的です。ルーティングについて読んで、たとえばこのようなPHPルーターを選びます。

于 2013-02-25T13:37:41.233 に答える
0

いいえ、PHPを使用する必要はありません。複数のHTMLファイルを作成してサーバーに配置するだけです。次に、AJAXを使用して特定のコンテンツ(ハッシュ "#some-name"に関連する)をロードできます。

これを試して:

http://tutorialzine.com/2009/09/simple-ajax-website-jquery/

于 2013-02-25T13:37:53.697 に答える
0

PHPでは、クエリ文字列にある変数を使用して、本文の内容を判別できます。小さなウェブサイトの非常に簡単な例を次に示します。

example.php?content = contact_form

<?php
$content = isset($_GET['content']) ? trim($_GET['content']) : 'default';

switch($content){
    case 'contact_form':
        include('html/contact_form.php');
        break;
    case 'welcome':
        include('html/welcome.php');
        break;
    default:
        include('html/default.php');
}

または:

<?php
$contentPages = array(
    'contact_form' => 'contact_form.php',
    'welcome' => 'welcome.php',
    'about' => 'about.php'
);

$content = 'default.php';
if(isset($_GET['content']) && array_key_exists($_GET['content'], $contentPages)){
    $content = $contentPages[$_GET['content']];
}

include('html/' . $content);
于 2013-02-25T13:38:26.080 に答える
0

これが私のやり方です。PHP ファイル内で $template を変更します。

//Get content
$template = file_get_contents("main.html");

//Content based on _GET['page'] value
switch($_GET['page']){
    case "home": //Form Page
        include("inc/form_year.php");
        break;
    case "company_register": //Form Page
        include("inc/company_register.php");
        break;
    case "confirm_user": 
        include("inc/confirm_user.php");
        break;
    case "posts": 
        include("inc/posts.php");
        break;
    case "question": 
        include("inc/question.php");
        break;
    case "post_question": 
        include("inc/post_question.php");
        break;
    case "post_answer": 
        include("inc/post_answer.php");
        break;
    case "comment": 
        include("inc/comment.php");
        break;
    case "create_post": 
        include("inc/create_post.php");
        break;
    default: //Any page that is not defined in this switch will lead to this page
        include("inc/form_year.php");
}
于 2013-02-25T13:44:00.323 に答える
0

あなたのサンプルコードはかなり良いですが、ハッシュタグの代わりに変数を使用する必要があります.

したがって、profiles.html#example-contenet1 の代わりに、profiles.html?name=example-content1 になります。

その後、switch ステートメントは正しく機能します。

$_GET 変数に関する追加情報: http://www.w3schools.com/php/php_get.asp

URL のハッシュ タグ部分はサーバーによって取得されません。詳細については、次の質問をご覧ください。

サーバー側アプリケーション (PHP、Ruby、Python など) で URL のハッシュ部分を読み取ることはできますか?

于 2013-02-25T13:38:47.700 に答える
0

すべてのページに js ファイルを使用します。

index.html => index.js
guestbook.html => guestbook.js

等々。ページごとに異なる実装が必要なため、問題ありません。複数のページで機能を共有したい場合は、 を使用しglobal.jsて、このファイルをすべてのページに含めます。

于 2013-02-25T13:38:57.877 に答える