PHP:
<?php
$mainView = "views/dashboardView.php";
?>
HTML:
<div class="mainContent">
<?php include($mainView); ?>
</div>
ボタンのクリックイベントで.mainContentが表示するビューを変更したいのですが、AJAXはこれを実現できると思いますが、まだ機能させることができていません。
何かアドバイス?
これを可能にするには、PHPスクリプトを変更する必要があります。
例えば:
PHP:
if (isset($_POST['change']))
{
$mainView = $_POST['change'];
echo $mainView;
}
HTMLとjQuery:
<button id="change">Change the var</button>
<script>
$("#change").click(function() {
$.post("file.php", {change: $(this).val()},
function (data)
{
$("#mainContent").html(data);
});
});
</script>
<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>
これは役に立ちますか?
PHPはサーバー側(最初に実行)であり、JSはクライアント側(サーバー側の後に実行)であるため、PHP変数の値を変更することはできません。
通常、AJAXはWebページの領域を再作成するために使用されますが、それは目的に適しています。以下の例でajax/test.php
は、含める新しいファイルです。もちろん、必要に応じてパス/名前を変更し、そのファイルを作成します。
ただし、ページの大部分を再入力する場合は、完全に再読み込みするのと同じくらい簡単です。
$(function(){
$('.your-button-class').on('click', function(){
$.post('ajax/test.php', function(data) {
$('.mainContent').html(data);
});
});
});
ビューをセッションに保存すると、ユーザーがブラウザを閉じてセッションを終了するか、セッションが期限切れになるか、ビューが再び変更されるまで、サイトにこのビューが表示されたままになります。
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';
空のセッション変数を確認し、設定する前にファイルが存在することを確認することもできます。