2012-09-09 107 views
0

我有一個主要的PHP文件,我有一個'導航欄'鏈接到各種網頁,點擊'導航欄'項目我想div的內容替換與各自的頁面。

navbar.php:

<li id="nav-home"><a class="button" href="main.php">Home</a></li> 
<li id="nav-attn"><a class="button" href="?nav=page1.php">Page1</a></li>  
<li id="nav-tran"><a class="button" href="?nav=page2.php">Page2</a></li> 
<li id="nav-mr"><a class="button" href="?nav=page3.php">Page3</a></li> 

main.php:

<script> 
$(document).ready(function() { 
$('#content').load('<?php echo $_GET['nav'] ?>');   
}); 
</script> 

有了這個代碼,我期待的是在導航欄項目的DIV內容必須改變,以各自的頁面引用的點擊。 我發現的是,例如,當我點擊page1時,我的網址正在被更改爲main?nav = page1.php,但更改div內容的腳本根本沒有被觸發。 請糾正我,但我不想改變'#'的鏈接。

+3

你有一個龐大[XSS安全漏洞(http://stackoverflow.com/questions/71328/what-are-the-best-practices-for-avoiding-xss-attacks-in-a- php站點),並且它是毫無意義的(效率低下和搜索引擎不友好)跟隨鏈接到一個新的頁面,只能使用Ajax來加載所有的內容。只需包含PHP的內容。 – Quentin

+0

我要說的是同樣的事情,只要將內容直接包含在AJAX或PHP中,但不要使用像這樣的無效方式 – Alexander

+0

如果我輸入url'http://example.com/main,該怎麼辦? PHP?NAV = main.php' ?? :)) – Peter

回答

1
<script> 
$(document).ready(function() { 
    $('uL#navbar a').click(function(e){ 
    e.preventDefault(); 
    $('#content').load($(this).attr('href')); 
    }); 
}); 
</script> 
0

你可以試試這個

$(document).ready(function() { 
    $('ul li a.button').on('click', function(e){ 
     e.preventDefault(); 
     $('#content').load($(this).attr('href'));   
    }); 
}); 
0

您需要使用AJAX它

<script> 
    $(function(){ 
     $('.button').on('click', function(e){ 
      e.preventDefault(); 
      $('#content').load($(this).attr('href')); 
     }); 
    }) 
</script> 

<li id="nav-home"><a class="button" href="main.php">Home</a></li> 
<li id="nav-attn"><a class="button" href="?nav=page1.php">Page1</a></li>  
<li id="nav-tran"><a class="button" href="?nav=page2.php">Page2</a></li> 
<li id="nav-mr"><a class="button" href="?nav=page3.php">Page3</a></li> 
<div id="content"></div> 
+0

什麼是重點添加與我和shejkh相同的答案? – Peter

+0

1)它是一樣的嗎? 2)你爲什麼添加與謝赫相同的答案? 3)試着理解,通常需要花時間打字,測試和提交。 –

+0

1)是的,它是一樣的2)skheik在我後面添加了答案3)什麼測試:D沒有進攻,但IMO沒有重複的答案 – Peter

0

嘗試;

$(document).ready(function() { 
    $('.button').on('click', function(e){ 
     e.preventDefault(); 
     $('#content').load($(this).attr('href'));   
    }); 
}); 

在您的php中,更改代碼以使echo看起來像;

<li id="nav-attn"><a class="button" href="yourpage.php?nav=page1.php">Page1</a></li>