PHP:
<?php
$mainView = "views/dashboardView.php";
?>
HTML:
<div class="mainContent">
<?php include($mainView); ?>
</div>
我希望按钮的click事件能够改变视图.mainContent显示的内容,我相信AJAX可以实现这一目标,但尚未能让它工作。
有什么建议吗?
答案 0 :(得分:3)
您必须修改PHP脚本才能实现此目的。
例如:
PHP:
if (isset($_POST['change']))
{
$mainView = $_POST['change'];
echo $mainView;
}
HTML&amp; jQuery的:
<button id="change">Change the var</button>
<script>
$("#change").click(function() {
$.post("file.php", {change: $(this).val()},
function (data)
{
$("#mainContent").html(data);
});
});
</script>
答案 1 :(得分:1)
<script type="text/javascript>
function changePage(pageDest){
var xmlobject = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xmlobject.onreadystatechange = function (){
if(xmlobject.readyState == 4 && xmlobject.status == 200){
document.getElementById("mainContent").innerHTML = xmlobject.responseText;
}
else{
document.getElementById("mainContent").innerHTML = 'Loading...';
}
}
xmlobject.open("GET",pageDest,true);
xmlobject.send();
}
</script>
<div class="mainContent" id="mainContent">
Change this HTML
</div>
<div onmouseup="changePage('views/dashboardView.php')">Get dashboard view</div>
changePage函数中的参数是您要放置在mainContent <div>
这有帮助吗?
答案 2 :(得分:1)
您不能更改PHP变量的值,因为PHP是服务器端(完成第一个),而JS是客户端(在服务器端之后完成)。
通常,AJAX用于重新填充网页的某个区域,但这符合您的目的。在下面的示例中,ajax/test.php
是您要包含的新文件。显然可以根据需要更改路径/名称,并创建该文件。
我会补充一点,如果你正在重新填充你的大部分页面,它可能会快速完全重新加载它。
$(function(){
$('.your-button-class').on('click', function(){
$.post('ajax/test.php', function(data) {
$('.mainContent').html(data);
});
});
});
答案 3 :(得分:1)
在会话中存储视图,将使网站显示此视图,直到用户关闭浏览器并结束会话,会话过期或者他们再次更改视图。
设置mainView的包含
<?php
session_start();
$mainView = "views/dashboardView.php"; // default
if(isset($_SESSION['mainView']))
{
$mainView =$_SESSION['mainView'];
}
?>
//设置mainView的ajax脚本
<?php
session_start();
$_SESSION['mainView']='views/'.$_GET['mainView'].'.php';
?>
ajax的javascript链接
ajaxURL='ajax.php?mainView=otherDasboard';
您可能还想检查空会话变量,并在设置之前存在该文件