我有一个网站,它使用PHP来选择内容,
<div>
<? include ("navigation.php"); // navigation.php generates the menu ?>
</div>
<div>
<?
$type = $_GET["type"];
switch ($type) {
case "page" :
include "Text.php";
break;
case "news":
include "news_2.php";
break;
default :
include "main.php";
}
?>
</div>
网址格式为domain.com/index.php?type
。
我需要更改块#content
而不重新加载整个页面,我该怎么做?
答案 0 :(得分:4)
当您使用“jquery”标记问题时,我假设您知道这是什么,并且您将其加载到页面中。
你需要的就是给你的div和ID ......这里的内容
然后使用一些jquery ..最简单的形式,只是在页面加载完成后将你的内容从'myurl.php'加载到'mydiv':
$(document).ready(function() {
$("#mydiv").load("myurl.php");
});
毫无疑问,您需要一些逻辑来确定负载以及在什么情况下。如果您需要将数据传回URL,则需要使用jquery ajax($ .ajax)。它非常简单,网上有大量的例子,还有JQuery网站上的优秀文档。
答案 1 :(得分:1)
这最好用Ajax完成。我喜欢使用jQuery的ajax函数。像这样:
function load(page){
var datastring='ANY DATA YOU WANT TO SEND';
$.ajax({
type: "POST",
url: 'your/pagehtml/',
data: "bust="+Date()+datastring,
dataType: "html",
cache: false,
success: function(html){
$('#content').html(html)
}
});
return false;
}
您不需要以这种方式在网址中发送网页。无论何时更改网址,您都必须加载其他网页。在.htaccess之外重写。这不是你需要的。
点击或根据需要点击此消息。
答案 2 :(得分:0)
如果你正在使用jQuery,那很简单。您没有发布应该触发更改的内容,因此我假设您在其他元素中有一个链接列表,其ID为nav。
在此处阅读有关jQuery Ajax请求的更多信息:http://api.jquery.com/jQuery.ajax/
//run on page load
$(function(){
//bind a click event to the nav links
$("#nav a").bind("click", function(e){
//keep the links from going to another page by preventing their default behavior
e.preventDefault();
//this = link; grab the url
var pageLocation = this.href;
//fire off an ajax request
$.ajax({
url: pageLocation,
//on success, set the html to the responsetext
success: function(data){
$("#content").html(data.responseText);
}
});
});
});
我还建议做一些代码清理,比如在load事件上缓存你的$(“#content”)元素(比如window.container = $(“#container”),稍后再使用window.container) ,但我把它保持原样,以便一切都清晰。