2016-07-14 22 views
-2

同じ水平ナビゲーションバーとフッターを持つWebページを作成したいと思いますが、内容は動的にロードされます。ユーザはナビゲーションバーをクリックする。用修正ナビゲーションバーとフッターを持つ修正PHP Webページの作成方法

<div class="nav-bar"> 
/* this is always same mainTemplate.php */ 
</div> 

<div class="main-content"> 
/* here i load different pages like content1.php or content2.php or content3.php, depending what the user clicks on the different nav-bar sections/buttons */ 
</div> 

<footer> 
/* this is always same mainTemplate.php */ 
</footer> 

どのようにJavaScriptやAJAXやPHPか何かでそれを行うには?

+0

あなたはこのために、ブートストラップテンプレートを使用することができます。このhttps://www.codecademy.com/courses/my-first-webpage/0/1を開きます –

+0

私は既に私のページのためのブートストラップを使用しています..どのテンプレートを使うべきですか?ありがとうございました! PS:なぜ私は投票になりますか? – ZelelB

+0

@KarimBelkhiria多分あなたが質問したことはあまり問題ではないので、あなたはチュートリアルやコードを尋ねています。例を挙げてはいけません。問題がある場合はコードに入り、投稿してください。ここに –

答えて

1

PHP:

<div class="nav-bar"> 
/* this is always same mainTemplate.php */ 
<ul> 
    <li id="op1">op1</li> 
    <li id="op2">op2</li> 
    <li id="op3">op3</li> 
</div> 

<div class="main-content"> 
/* here i load different pages like content1.php or content2.php or content3.php, depending what the user clicks on the different nav-bar sections/buttons */ 
</div> 

<footer> 
/* this is always same mainTemplate.php */ 
</footer> 

<script src="yourScript.js" type="text/javascript"></script> 

JS:(yourScript.js)

(function(){ 
    var elems = document.getElementsByTagName("li"); 
    for(idx = 0; idx < elems.length; idx++){ 
     elems[idx].addEventListener("click", menuClick, false); 
    } 
    loadDoc("homePage.html"); 
})(); 

function menuClick(li){ 
     li.stopPropagation(); 
     li.stopImmediatePropagation(); 
     if(li.target.getAttribute("id") == "op1"){ 
     loadDoc("yourContentPage.php"); 
     } 
     if(li.target.getAttribute("id") == "op2"){ 
     loadDoc("yourContentPage2.php"); 
     } 
     if(li.target.getAttribute("id") == "op3"){ 
     loadDoc("yourContentPage3.php"); 
     } 
} 

function loadDoc(yourContentPage) { 
    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
     if (xhttp.readyState == 4 && xhttp.status == 200) { 
      document.getElementById("main-content").innerHTML = xhttp.responseText; 
     } 
    }; 
    xhttp.open("POST", yourContentPage, true); 
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xhttp.send(); 
} 
+0

完璧!ありがとう – ZelelB

+0

と私は最初の特定のメインコンテンツが読み込まれたい場合は? 3つのcontentPagesの1つであるホームページ/ indexpageのようなものですか? – ZelelB

+0

あなたはそれをハードコーディングするか、または 'eventListener'を追加した後にJS呼び出し' loadDoc( "homePage.html"); 'を呼び出すことができます。 –

1

これにはAJAXを使用できます。

jqueryも使用している場合、jqueryには関数が組み込まれています。 http://www.w3schools.com/jquery/jquery_ajax_intro.asp

あなたの側に文字通り何も表示されていないので、私はAJAXチュートリアルへのリンクが必要であると信じています。 https://www.codecademy.com/courses/my-first-webpage/0/1

+2

これはコメントでなければなりません。答えは有益であり、ソリューションとその内部のコードで詳しく書かれています –

+0

私はそれを投稿した直後に自分の答えを編集し、コードとajaxへのリンクを含めました。私がinclude関数へのリンクはOPが必要とするものだと思うが(私は彼の質問をはっきりと理解していた)。そして、Googleものの能力も。 – Kalko

+0

opはphpのインクルード関数を要求していないので、nav barをクリックするとdivのコンテンツを動的にロードしたいと考えています。だから、ajaxはそれのためのソリューションです、あなたは、いくつかのPHPファイルにajaxのサンプルリクエストを投稿することができます。 + –

0

シンプルなウェブサイトのデモは、それ以外の場合、あなたはそのhttp://startbootstrap.com/template-categories/all/

開き、これを、ダウンロード用のブートストラップテンプレートを使用することができます。このような多分

+2

これはコメントでなければなりません。回答は有益であり、ソリューションとその内部のコードで詳しく書かれています –

関連する問題