外部包含的、AJAX加载的PHP文件的全局变量


PHP Global variables for an externally included, AJAX loaded PHP file

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

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");

不可以访问全局变量。你必须再次包括header.php。AJAX用一个全新的http请求异步加载文档(在您的示例中是content.php)。因此,它将加载content.php没有任何数据。

唯一可能的解决方案是通过POST发送$SESSIONID与AJAX-Call:

$.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'
});