[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача значений ссылки в select
mailboyko
Добрый день!
Возник вопрос, на который не могу найти ответ. Просьба помочь.

Есть две страницы page1.php и page2.php
Необходимо чтобы с первой страницы page1.php происходил переход по ссылки на вторую страницу page2.php где присутствует два списка городов и подставляло в каждый <select> переменные которые указаны в ссылке. Предполагаю что необходимо воспользоваться методом GET.

На странице page1.php расположил ссылку
<a href="page2.php?origin-city=Москва&destination-city=Сочи" >Москва-Сочи</a>

На странице page2.php расположены два <select>

<select id="origin-city" name="origin-city">
<option
value="Москва">Москва</option>
<option
value="Сочи">Сочи</option>
</select>

<select
id="destination-city" name="destination-city">
<option
value="Москва">Москва</option>
<option
value="Сочи">Сочи</option>
</select>


Подскажите какую функцию PHP необходимо прописать на странице page2.php, чтобы реализовать условие передачи значений в ссылке, в оба <select>.
GET
mailboyko

1. Сначала нужно избавится от такого вида:
Цитата
<select id="origin-city" name="origin-city">
<option value="Москва">Москва</option>
<option value="Сочи">Сочи</option>
</select>


Нужно чтоб города были в переменной, в массиве (или БД).

2. Затем при отрисовке списка проверяете не пришел ли город, который сейчас нарисуется: Москва, если пришел, то вместо
<option value="Москва">Москва</option>

пишите:
<option value="Москва" selected="selected">Москва</option>


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Akarapidoz
страница 1
<a href="page2.php?origin-city=1&destination-city=2" >Москва-Сочи</a>


страница 2
<?php 
//Массив скорей всего будет браться из базы
$array[]=array('id_city'=>1, 'city'=>'Москва');
$array[]=array('id_city'=>2, 'city'=>'Сочи');

//первый селект
echo '<select id="origin-city" name="origin-city">';

//перебираем циклом массив $array и получаем из него значения
foreach ($array as $val_array){
//создаём переменную $sel. При следующем цикле после срабатывания следующей проверки, она обнулится.
$sel = '';
//проверка на совпадение id города в массиве и в гет запросе
if (isset($_GET['origin-city']) && $_GET['origin-city']==$val_array["id_city"]){
//если id одинаковые, то в $sel будет прописан селектед, те пункт выбран
$sel = 'selected="selected"';
}
//выводим в цикле пункты селекта. Если проверка сработает, то пункты будет выбран
echo'<option value="'.$val_array["id_city"].'" '.$sel.'>'.$val_array["city"].'</option>';
}
echo '</select>';


//также и второй
echo '<select id="destination-city" name="destination-city">';
foreach ($array as $val_array){
$sel = '';
if (isset($_GET['destination-city']) && $_GET['destination-city']==$val_array["id_city"]){
$sel = 'selected="selected"';
}
echo'<option value="'.$val_array["id_city"].'" '.$sel.'>'.$val_array["city"].'</option>';
}
echo '</select>';
?>


Буду рад услышать критику настоящих программистов.

_____________
Прошу критиковать, если что-то не так.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.