2

我有三个文件:

index.php ajax.php function.php

我想将全局变量从via传递index.php给。所以警告信息应该是“2”。但实际上,结果是“1”,因为不知道.function.phpajax.phpindex.phpfunction.php$global_variable

这是代码:

索引.php

<?php
$global_variable = 1;
?>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>
    $.ajax({
        type: "POST",
        url: 'ajax.php',
        success: function(data) {
            alert(data);
        }
    });
</script>

ajax.php

<?php
include 'function.php';

$result = process_my_variable(1);
echo $result;
?>

函数.php

<?php
function process_my_variable($new_variable) {
    global $global_variable;
    $result = $global_variable + $new_variable;

    return $result;
}
?>

我不想将全局变量传递给ajax调用,因为我的真实项目有很多这样的变量,出于安全考虑,它们不应该显示。

这个怎么做?

4

2 回答 2

4
 $.ajax({
        type: "POST",
        url: 'ajax.php',
        data:{
             global_variable:<?php echo $global_variable?>
        },
        success: function(data) {
            alert(data);
        }
    });

您可以将其与数据对象一起发送到 ajax.php 页面

在 ajax.php 页面上,您可以通过以下方式获取它:

<?php
include 'function.php';
$global_var=$_POST['global_variable'];
$result = process_my_variable($global_var);
echo $result;
?>
于 2013-11-08T09:41:28.913 回答
3

index.phpajax.php(包含function.php)是不同的程序。它们不共享变量。

您要么需要将数据存储在两个程序都可以获取的位置(例如在 SESSION 中),要么将数据从浏览器传递index.php到浏览器,然后将其发送到ajax.phpAjax 请求的查询字符串或 POST 正文中。

于 2013-11-08T09:43:02.893 回答