PHP全局变量,用于外部包含的AJAX加载的PHP文件

时间:2014-07-07 17:01:40

标签: php ajax global-variables session-variables

是否可以访问文件中声明的全局变量,例如一个header.php文件,来自另一个已经加载了AJAX调用的名为content.php的外部PHP文件,而不使用GET或POST?

e.g。

的index.php:

<?php

    include 'header.php'; //The global variable $SESSIONID is defined in this file

    echo '<div id="for-content"></div>';

    include 'footer.php';
?>

的header.php

<?php
    $SESSIONID = "asdf";
?>

content.php:

<?php
    echo $SESSIONID;
?>

和AJAX电话:

$("#for-content").load("content.php");

1 个答案:

答案 0 :(得分:2)

不可以访问全局变量。您必须再次添加header.php。 AJAX正在以完整的新http请求异步加载文档(在您的情况下为content.php)。所以它会加载content.php而没有任何数据。

唯一可行的解​​决方案是通过$SESSIONID向AJAX-Call发送POST

$.ajax({
  type: "POST",
  url: 'content.php',
  data: {session: '<?php echo $SESSIONID; ?>'},
  success: function(data) {
       $('.target').html(data)
    },
  dataType: 'html'
});

GET

$.ajax({
  url: 'content.php',
  data: {session: '<?php echo $SESSIONID; ?>'},
  success: function(data) {
       $('.target').html(data)
    },
  dataType: 'html'
});