跨两页的PHP变量

时间:2017-01-08 01:50:50

标签: php ajax

很抱歉,如果标题不准确,但我需要帮助将变量同步到两个页面,当第二个加载ajax时(Instant Messanging)

我需要它来获取带有ajax的页面,就像我之前在同一文档中定义变量一样,它不适用于ajax页面(我不能使用include

page1.php

<?php $variable = 'apples'; ?>
<script src="script.js"></script> <!--Contains ajax for page2.php-->

<div id="gets_parsed_here"></div>

它使用ajax来获取page2.php

page2.php

<?php echo $variable; ?>

这不是我的实际代码,但它与它应该做的相似。

任何帮助都会受到很多赞赏。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用COOKIES / SESSION。

例如:

page1.php中

<?php
@session_start();
    //if you get your variable from a remote page you should place it this var defination bellow:
<?php $_SESSION['keyName'] = 'apples'; ?>
<script src="script.js"></script> <!--Contains ajax for page2.php-->

<div id="gets_parsed_here"></div>

使page2.php

<?php 
@session_start();
echo $_SESSION['keyName']; 
?>

SESSION可以来自同一服务器中的每个页面,没有相关的代码。 您只需使用session_start();

启用它
  • 由于安全原因,我真的建议在@之前添加session_start()

您可以在PHP.NET

上详细了解SESSION

答案 1 :(得分:0)

我认为你问的是当page1.php通过AJAX调用page2.php时,如何将变量从page1.php传递给page2.php。

由于您的脚本位于外部JS文件中,因此涉及两个步骤:

  • 在Javascript中获取变量,因此script.js可以访问它。你如何做到这一点取决于你实际在做什么,但这是一个简单的例子。在包含script.js:

    之前,在page1.php上的某处添加以下内容
    <script>
        var fruit = <?php echo json_encode($variable); ?>;
    </script>
    

    或者,从页面上已经出现的位置读取变量可能更有意义,例如(使用jQuery):

    var fruit = $('#someID).val();
    
  • 将Javascript变量传递给AJAX请求中的page2.php。您可以通过将其作为GET或POST参数传递来实现。你还没有在script.js中展示你是如何进行AJAX调用的,但是这里你可以在jQuery中做到这一点(这是GET):

    $.ajax({
        url: 'http://your-site/page2.php',
        data: { 'fruit': fruit },
        success: function(resp) {
            // AJAX is done, use the response
        }
    });
    

    这会向http://your-site/page2.php?fruit=apples发出请求。正如您在PHP 101中所知,您可以在page2.php中访问fruit的值,如:

    echo $_GET['fruit'];
    

    如果您正在使用框架,请使用它来访问输入请求参数的首选方法,而不是直接访问$ _GET。