使用AJAX更改PHP变量的值

时间:2012-11-02 14:12:20

标签: php jquery

PHP:

<?php

$mainView = "views/dashboardView.php";

?>

HTML:

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

我希望按钮的click事件能够改变视图.mainContent显示的内容,我相信AJAX可以实现这一目标,但尚未能让它工作。

有什么建议吗?

4 个答案:

答案 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';

您可能还想检查空会话变量,并在设置之前存在该文件