1

PHP:

<?php

$mainView = "views/dashboardView.php";

?>

HTML:

<div class="mainContent">
    <?php include($mainView); ?>
</div>

ボタンのクリックイベントで.mainContentが表示するビューを変更したいのですが、AJAXはこれを実現できると思いますが、まだ機能させることができていません。

何かアドバイス?

4

4 に答える 4

3

これを可能にするには、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>
于 2012-11-02T14:28:09.860 に答える
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>

これは役に立ちますか?

于 2012-11-02T14:23:50.000 に答える
1

PHPはサーバー側(最初に実行)であり、JSはクライアント側(サーバー側の後に実行)であるため、PHP変数の値を変更することはできません。

通常、AJAXはWebページの領域を再作成するために使用されますが、それは目的に適しています。以下の例でajax/test.phpは、含める新しいファイルです。もちろん、必要に応じてパス/名前を変更し、そのファイルを作成します。

ただし、ページの大部分を再入力する場合は、完全に再読み込みするのと同じくらい簡単です。

$(function(){

    $('.your-button-class').on('click', function(){

        $.post('ajax/test.php', function(data) {
            $('.mainContent').html(data);
        });

    });

});
于 2012-11-02T14:24:07.610 に答える
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';

空のセッション変数を確認し、設定する前にファイルが存在することを確認することもできます。

于 2012-11-02T14:24:31.353 に答える