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 变量的值,因为 PHP 是服务器端(首先完成),而 JS 是客户端(在服务器端之后完成)。

通常 AJAX 用于重新填充网页的某个区域,但这将适合您的目的。在下面的示例中,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 回答