2014-11-11 4 views
0

Я работаю с основной PHP страницу, которая имеет четыре включены шаблоны:Передача переменной PHP Session «Включить» страницу Проблема

<?php session_start(); ?> 
<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=9" /> 
<title>Example Page</title> 
</head> 
<body> 
<?php include ("script/select.class.php"); ?> 
<div class="content"> 
<?php 
    include("./templates/one.php"); 
    include("./templates/two.php"); 
    include("./templates/three.php"); 
    include("./templates/four.php"); 
?> 
</div> 
</body> 
</html> 

«two.php» содержит форму (the_form) подавались через AJAX:

$('#button').click(function(){ 
     $.ajax({ 
      type: "POST", 
      url: "script/add_new.php", 
      data: $("#the_form").serialize(), 
      success: function(data){ 
       newID = data; 
       alert(newID); 
      } 
     }); 
}); 

На 'add_new.php' после того, как INSERT завершается, у меня есть PHP код:

if (!mysqli_query($con,$sql)) { 
    die('Error: ' . mysqli_error($con)); 
} 

$_SESSION['new_id'] = mysqli_insert_id($con); 

echo $_SESSION['new_id']; 

Проблема Я experien cing заключается в том, что даже если $ _SESSION ['new_id'] вернется через данные Ajax 'data' var и появится в «alert», я получаю ошибку Неопознанный индекс, если я попытаюсь отобразить на следующей странице tempate (three.php) с использованием <?php echo $_SESSION['new_id'] ?>.

Любые предложения?

+0

'$ _SESSION ['new_id']' устанавливается во время запроса AJAX, в то время как 'include (" ./ templates/three.php ");' включено до того, как код js части ajax и html отправляются на браузер, перед любым запросом ajax и так далее. – Cheery

+0

В конечном итоге я хочу, чтобы значение хранилось в сеансе var. «Предупреждение» используется для доказательства существования сеанса var. Вы говорите, что сеанс var недоступен для меня, потому что «three.php» уже включен? –

+2

В тот момент, когда включен 'three.php', вы, вероятно, не имеете этой переменной или не настроены на значение, которое вы ожидаете. Вы php-код «создает» html-код с кодом js для запроса ajax, выводит его в браузер, браузер делает запрос ajax другому php-коду, и это происходит ПОСЛЕ 'include (" ./ templates/three.php ");' If вы пытаетесь показать что-то позже с единственным запросом на 'three.php', который имеет только' 'в нем - вам нужно запустить сеанс в этом одиночном файле. – Cheery

ответ

0

Веселится правильно. Мне нужно принять другой подход.

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