2013-11-08 6 views
1

У меня есть три файла:Как передать глобальную переменную с помощью AJAX

index.php ajax.php function.php

Я хочу передать глобальную переменную из index.php в function.php через ajax.php. Таким образом, предупреждающее сообщение в index.php должно быть «2». Но на самом деле результат «1», потому что function.php не знает $global_variable.

Вот код:

index.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; 
?> 

function.php

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

    return $result; 
} 
?> 

Я не хочу передавать глобальную переменную в ajax-вызов, потому что у моего реального проекта много таких переменных, и они не должны отображаться из-за безопасности.

Как это сделать?

ответ

3
$.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; 
?> 
3

index.php и ajax.php (с включённым function.php) различные программы. Они не разделяют переменные.

Вам необходимо либо сохранить данные где-нибудь, что обе программы могут получить на нем (например, на СЕССИИ), либо передать данные от index.php в браузер, а затем отправить его в ajax.php в строке запроса или в теге POST запрос Ajax.

Смежные вопросы