После недели проб и ошибок с большим количеством чтения здесь я все еще не могу получить эту работу.
Что я хочу: У меня есть сайт с 24 страницами. Каждый продукт доступен в «классическом» или «модерном». На каждой странице есть кнопка для переключения между одним и другим (отображение по-разному img). Если пользователь нажимает кнопку «Продукт» в «moderne», а затем переходит к продукту B, я хочу, чтобы они сразу увидели «современную» версию без повторного щелчка (по умолчанию это «классический»). Я думаю, СЕССИЯ - это именно то, что мне нужно.
Мой код (я использую session_start() в верхней части обеих страниц):Установить сеанс PHP с AJAX не работает
продукта Страница:
<?php
$_SESSION["collection"] = "";
?>
<script>
function ClasstoMod(){
$(".classique, .moderne").toggle(); // toggles the images, it's working
}
</script>
<script>
$(document).ready(function() {
$("#display-moderne").click(function() {
request =
$.ajax({
url: "classtomod.php",
type: "post",
data: 'moderne'
});
// callback handler that will be called on success
request.done(function (response, textStatus, jqXHR){
// log a message to the console
console.log("Hooray, it worked!"); });
// callback handler that will be called on failure
request.fail(function (jqXHR, textStatus, errorThrown){
// log the error to the console
console.error( "The following error occured: "+ textStatus, errorThrown ); }); });
});
</script>
<html>
<div id="display-moderne" class="classique" href="#" onclick="ClasstoMod();">Check out the new Moderne Line!</div>
<div id="display-classique" style="display:none;" class="moderne" href="#" onclick="ClasstoMod();">Return to our Classique Line!</div>
</html>
classtomod.php
<?php
$_SESSION['collection'] = $_POST['data'];
?>
Продукт B, сейчас Я только пытаюсь повторить правильную «коллекцию», я буду работать над JS, чтобы отобразить правильное изображение позже!
<?php
echo "Collection = " .$_SESSION['collection'];
?>
Журнал консоли выполнен успешно, однако эхо на странице B не отражает новую СЕССИЮ. Если я запустил его, как показано на рисунке, он просто перекликается с «Collection =»
Если я определяю $ _SESSION ['collection'] = "test" на странице A, Page B эхо "Collection = test", как ожидалось, так что часть за работой.
То, что я хочу, после того, как я нажимаю на # display-moderne для страницы B, чтобы эхо «Collection = moderne»
Я думаю, что я близок, любая помощь приветствуется!
Вы упускаете 'session_start();' в PHP скриптах. – Barmar
Возможно, вам захочется заглянуть в локальное хранилище или файлы cookie, если вам не нужна причина, чтобы сервер выполнял сеанс. – Rob
@Barmar У меня есть session_start в верхней части всех страниц, до doctype. – user2877438