Я работаю с основной 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'] ?>
.
Любые предложения?
'$ _SESSION ['new_id']' устанавливается во время запроса AJAX, в то время как 'include (" ./ templates/three.php ");' включено до того, как код js части ajax и html отправляются на браузер, перед любым запросом ajax и так далее. – Cheery
В конечном итоге я хочу, чтобы значение хранилось в сеансе var. «Предупреждение» используется для доказательства существования сеанса var. Вы говорите, что сеанс var недоступен для меня, потому что «three.php» уже включен? –
В тот момент, когда включен 'three.php', вы, вероятно, не имеете этой переменной или не настроены на значение, которое вы ожидаете. Вы php-код «создает» html-код с кодом js для запроса ajax, выводит его в браузер, браузер делает запрос ajax другому php-коду, и это происходит ПОСЛЕ 'include (" ./ templates/three.php ");' If вы пытаетесь показать что-то позже с единственным запросом на 'three.php', который имеет только' php echo $ _SESSION ['new_id']?> 'в нем - вам нужно запустить сеанс в этом одиночном файле. – Cheery