Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2013, 09:51   #1
Решетова Алена
Форумчанин
 
Регистрация: 13.12.2012
Сообщений: 116
По умолчанию Запоминание выбранного значения в выпадающем списке

Ребята, здравствуйте! Помогите, пожалуйста! Второй день думаю, никак не получается сделать( А мне срочно надо(

Как запомнить значение выбранного значения (переприсвоить селект)?
Дело в том, что у меня эта выборка обходится без БД, просто на странице висит. И что сравнивать, не понимаю... Все равно сбивается, селект не устанавливается(

Я уже кучу сайтов перерыла(

На одном нашла вот это:
Цитата:
вот пример моего статичного списка ОН РАБОТАЕТ и сохраняет выбранное значение при перезагрузке страницы :
Код:
<select name="year"> 

<option value="1984"
<?php if (isset($_POST['update'] )&& ($_POST['year'] == '1984'))
{echo "selected='selected'";}?>> 1984 </option>

<option value="1985"
<?php if (isset($_POST['update'] )&& ($_POST['year'] == '1985'))
{echo "selected='selected'";}?>> 1985 </option>

<option value="1986"
<?php if (isset($_POST['update'] )&& ($_POST['year'] == '1986'))
{echo "selected='selected'";}?>> 1986 </option>

</select>
На вашем же форуме мне подсказали:
Цитата:
смысл такой:
получаем переменную из сессии
при выводе в цикле значений селекта проверять не равен ли он этой переменной,
если равен - дописываем selected
Но мне бы лучше без цикла. Значений мало. 3-5, так что лучше к каждому прописать, так понятнее будет.
Это я понимаю, но у меня все равно не получается(( Выбранное значение не запоминается в выпадающем списке, сбрасывается на первое. Но переменная сессии запоминает год и на других страницах её можно использовать. НО как только я заново захожу на страницу, где выбирается год, поскольку он сброшен, то переменная тоже обнуляется, и приходится выбирать заново. А мне нужно, чтобы она запоминалась, не сбрасывалась(

Вот кусок моего кода:

Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<?php
//Подключение соединения сессии
session_start();
// Помещаем значение в сессию
$_SESSION['year'] = $year;
?>
<html>
	<head>
		<meta charset="Windows-1251">
		<script type="text/javascript" src="register/js/jquery-1.4.2.min.js"></script>
        <script type="text/javascript" src="register/js/mymootol.js"> </script>
		<title>Личный кабинет</title>
	</head>
<body>
	
<?php
echo "Привет, <strong>".$_SESSION['username']."</strong> | <a href='LK.php'>Личный кабинет</a> | <a href='../register/exit.php'>Выход</a>
<br><br>Вы в своем личном кабинете. Вы можете заполнить счета за каждый месяц. И посмотреть уже созданные таблицы.<br>";

/*echo "<br><strong>Выберите год:</strong><br><br>
<form action=\"LK.php\" method=\"post\">
<select name=\"year\" size=\"1\">
<option value=\"2012\">2012</option>
<option value=\"2013\">2013</option>
<option value=\"2014\">2014</option>
<option value=\"2015\">2015</option>
</select>
<input type=\"submit\" value=\"Выбрать\" />
</form>
<br>";*/
?>
<br><strong>Выберите год:</strong><br><br>
<form action="LK.php" method="post">
<select name="year"> 

<option value="1984"
<?php if (isset($_POST['update'] )&& ($_POST['year'] == '1984'))
{echo "selected='selected'";}?>> 1984 </option>

<option value="1985"
<?php if (isset($_POST['update'] )&& ($_POST['year'] == '1985'))
{echo "selected='selected'";}?>> 1985 </option>

<option value="1986"
<?php if (isset($_POST['update'] )&& ($_POST['year'] == '1986'))
{echo "selected='selected'";}?>> 1986 </option>

</select>
<input type="submit" value="Выбрать" />
</form>
<br>

<?php
$year = isset($_POST['year']) ? $_POST['year'] : '';
echo "Год: ".$_SESSION['year'];
?>

</body>
</html>
Извините за мусор там, я как только не пробовала уже...

Последний раз редактировалось Решетова Алена; 13.05.2013 в 09:55.
Решетова Алена вне форума Ответить с цитированием
Старый 13.05.2013, 10:03   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

Цитата:
session_start();
// Помещаем значение в сессию
$_SESSION['year'] = $year;
?>
шедеврально! .... переменная $year всегда пустая ... вот вы и обнуляете сессионную переменную... уберите эту строчку
опять же - берете чужой код - вообще не понимая смысла....
isset($_POST['update'] - вот это везде можете убирать . у вас нет такой переменной .. или тогда в форму добавляете скрытое поле
ADSoft вне форума Ответить с цитированием
Старый 13.05.2013, 10:22   #3
Решетова Алена
Форумчанин
 
Регистрация: 13.12.2012
Сообщений: 116
По умолчанию

Убрала.
Исправила код (но опять же не до конца верно работает)

Код:
<br><strong>Выберите год:</strong><br><br>
<form action="LK.php" method="post">
<select name="year"> 

<option value="1984"
<?php if ($_SESSION['year'] == '1984')
{echo "selected='selected'";}?>> 1984 </option>

<option value="1985"
<?php if ($_SESSION['year'] == '1985')
{echo "selected='selected'";}?>> 1985 </option>

<option value="1986"
<?php if ($_SESSION['year'] == '1986')
{echo "selected='selected'";}?>> 1986 </option>

</select>
<input type="submit" value="Выбрать" />
</form>
<br>

<?php
$_SESSION['year'] = isset($_POST['year']) ? $_POST['year'] : '';
echo "Год: ".$_SESSION['year'];
Запоминается в списке после обновления страницы. НО проблема остается: когда я с другой страницы возвращаюсь на ту, где выбирается год, то переменная сбивается.

Простите за глупые вопросы и ошибки. Я php третий день вижу!(((


Как бы мне присвоить переменной значение по умолчанию? А если уж выбрали год, то выбранный год. Как это условие прописать?.. Что то не могу понять.
И при чем такое значение по умолчанию, на котором стоит селект, чтобы при переходе с другой страницы на эту, где год, переменная не сбивалась с выбранного года...

Последний раз редактировалось Решетова Алена; 13.05.2013 в 10:36.
Решетова Алена вне форума Ответить с цитированием
Старый 13.05.2013, 11:19   #4
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию

Так попробуйте, коряво конечно, но работать должно
PHP код:
<?php
session_start
();
$_SESSION['year'] = isset($_POST['year']) ? $_POST['year'] : $_SESSION['year'];

?>
<br><strong>Select town:</strong><br><br>
<form action="#" method="post">
<select name="year"> 

<option value="1984"
<?php if ($_SESSION['year'] == '1984')
{echo 
"selected='selected'";}?>> 1984 </option>

<option value="1985"
<?php if ($_SESSION['year'] == '1985')
{echo 
"selected='selected'";}?>> 1985 </option>

<option value="1986"
<?php if ($_SESSION['year'] == '1986')
{echo 
"selected='selected'";}?>> 1986 </option>

</select>
<input type="submit" value="Выбрать" />
</form>
<br>

Последний раз редактировалось kuba1981; 13.05.2013 в 13:12.
kuba1981 вне форума Ответить с цитированием
Старый 13.05.2013, 12:10   #5
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

PHP код:
<?php 
session_start
(); 

$year = array(198419851986);

if (isset(
$_POST['year'])) {
    
$key array_search($_POST['year'], $year);
    
    if (
$key!==false) { $_SESSION['year'] = $year[$key]; }    
}
 

?> 
<br><strong>Select town:</strong><br><br> 
<form action="#" method="post"> 
<select name="year">  

<?php foreach ($year as $value): ?>
<option value="<?php echo $value?>
<?php if ($_SESSION['year'] == $value) {echo "selected";}?><?php echo $value?> </option> 
<?php endforeach; ?>

</select> 
<input type="submit" value="Выбрать" /> 
</form> 
<br> 
<a href="./page.php">Page</a>
dr.Chas вне форума Ответить с цитированием
Старый 13.05.2013, 17:43   #6
Решетова Алена
Форумчанин
 
Регистрация: 13.12.2012
Сообщений: 116
По умолчанию

kuba1981, dr.Chas, СПАСИБО ОГРОМЕННОЕ!!! Вы просто не представляете, что для меня сделали! СПАСИБО!!!
П.С. kuba1981, вдвойне спасибо, использовала Ваш код, он показался мне более понятным) И действительно, работает! То, что нужно!!! =)

Целую Вас!!! :-*
Решетова Алена вне форума Ответить с цитированием
Старый 14.05.2013, 08:16   #7
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию

Да не за что,у dr.Chas код более правильный, я бы посоветовал его использовать
kuba1981 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аналог ListIndex в выпадающем списке VictorM Microsoft Office Excel 2 07.11.2012 00:23
Прокрутка колесом мыши в выпадающем списке oleg_sh Microsoft Office Excel 13 21.06.2012 10:29
Различные форматы в выпадающем списке Eldrich JavaScript, Ajax 3 23.03.2011 22:03
TComboBox с кнопочками в выпадающем списке FedorSymkin Компоненты Delphi 1 15.04.2010 20:20
Пусто в выпадающем списке? ZORRO2005 Microsoft Office Excel 6 10.01.2008 11:59