2016-07-03 2 views
0

Я создаю набор из 3 страниц, каждый из которых имеет выпадающее меню. Значения из предыдущих раскрывающихся меню будут заполнять следующее выпадающее меню. Я понимаю, что я должен использовать переменные сеанса для хранения значения каждого раскрывающегося меню на более поздние страницы. В качестве простого теста я повторяю переменные, чтобы увидеть, были ли они перенесены - и вот в чем проблема.Перемещение переменных между 3 страницами PHP

У меня есть три разных файла: choose_cc.php, choose_uni.php и choose_major.php значение из меню dropdowm в choose_cc.php действительно получить отражение в choose_uni.php - однако значение из choose_cc.php делает НЕ переносятся в select_major.php - несмотря на то, что я храню его в переменной сеанса.

поток страниц выглядит следующим образом;

choose_cc.php -> choose_uni.php -> choose_major.php Каждый файл php имеет свою собственную форму. Проблема заключается в том, что когда я пытаюсь вызвать значение из select_cc.php в select_major.php, у меня возникают проблемы.

Название формы на choose_cc.php: choose_cc. Название формы на choose_uni.php: choose_uni.

Так, например, в choose_uni.php, я получить значение из выпадающего меню на предыдущей странице (choose_cc.php), как это: $ _SESSION [ 'choose_cc'] = подрезать ($ _ GET [ 'choose_cc' ]); // выбирает cc из предыдущей страницы $ user_cc = $ _SESSION ['choose_cc']; echo $ user_cc;

, и когда я эхо, как я сделал выше, он работает! Хорошо, отлично!

Но когда я направляюсь на select_major.php, я пытаюсь получить значение снова из формы, но безрезультатно;

echo $_SESSION['choose_uni']; //this works 
echo $_SESSION['choose_cc']; //this doesn't work 

Я сделал так, чтобы хранить сделать session_start() на начало каждой страницы, а также.

Пожалуйста, помогите мне! это сводит меня с ума!

+0

После того, как это произойдет в сеансе, вам больше не нужно будет получать его из формы, поэтому на последней странице вам не нужно пытаться извлечь данные select_cc. – Matt

ответ

0

Создать новый «see.php» с этим:

session_start(); 
print_r($_SESSION); 

и выполнить его после каждого choose_cc.php, choose_uni.php и choose_major.php посмотреть сеанс у вас после запуска вашего программы.

0

Простой, как это:

а) добавить session_start(); в начале ВСЕХ вовлеченных страниц. Некоторые странные вещи случаются иногда, если вы кладете пробел перед ним или даже новую строку. Поэтому убедитесь, что это самое первое в вашем скрипте.

<?php 
session_start(); 
?> 

b) при необходимости проверить переменную для сохранения в сеанс для непустого(); Таким образом, вы можете быть уверены, что переменная session содержит что-то, если, конечно, вы явно не должны быть пустыми.

c) затем загрузить переменную сеанса.Вы можете временно проверить его с помощью var_dump();

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