Проблема вот какая, есть выпадающий список. В списке выбираю какое либо значения: нажимаем отправить, выполняется SQL запрос в базу, а списки слетают на 1ю позицию после отображения результатов: Как сохранить списки?
Tony эта... проверяешь в скрипте, что выбрато, ты же как-то используешь эту инфу для построения выборки. Ну при отрисовке селекта на каждом пункте проверяешь соответствие тому, что выбрано - и пишешь sected <option value='t1'".($city == $option['city'] ? ' selected' : '').">Чебурашка</option>
PHP: <html><body><p style="text-align: center;"><b>Воспользуйтесь фильтром для более детального поиска отеля</b></p> <form id="myForm" method="POST" action = ""> <p style="text-align: center;"> Уровень <select name="level"> <option value="">Не учитывать</option> <option value="эконом">эконом</option> <option value="эконом+">эконом+</option> <option value="средний">средний</option> <option value="средний+">средний+</option> <option value="высокий">высокий</option> </select> Город <select name="city"> <option value="">Не учитывать</option> <option value="Адлер">Адлер</option> <option value="Анапа">Анапа</option> <option value="Геленджик">Геленджик</option> <option value="Лазаревский">Лазаревский р-он</option> <option value="Лоо">Лоо</option> <option value="Сочи">Сочи</option> <option value="Туапсе">Туапсе</option> <option value="Хоста">Хоста</option> </select> До моря <select name="sea"> <option value="">Не учитывать</option> <option value="1я линия">1я линия</option> <option value="2я линия">2я линия</option> <option value="3я линия">3я линия</option> <option value="4я линия">4я линия</option> </select> Питание <select name="feed"> <option value="">Не учитывать</option> <option value="Без питания">Без питания</option> <option value="Завтрак">Завтрак</option> <option value="2х разовое">2х разовое</option> <option value="3х разовое">3х разовове</option> <option value="Все включено">Все включено</option> <option value="Доп. плата">Доп. плата</option> </select></[> <p style="text-align: center;"><input type="submit"/></p> </form> </body> </html> <?php include 'config.php'; // Загрузили конфиг $city = $_POST['city']; // Загрузили переменную в массив $city = mysql_real_escape_string($city); // Экранируем массив для безопасной передачи в запрос $feed = $_POST['feed']; // Загрузили переменную в массив $feed = mysql_real_escape_string($feed); // Экранируем массив для безопасной передачи в запрос $sea = $_POST['sea']; // Загрузили переменную в массив $sea = mysql_real_escape_string($sea); // Экранируем массив для безопасной передачи в запрос $level = $_POST['level']; // Загрузили переменную в массив $level = mysql_real_escape_string($level); // Экранируем массив для безопасной передачи в запрос $que = mysql_query("select * from hotels WHERE city LIKE '$city%' AND sea LIKE '%$sea' AND level LIKE '$level%' AND feed LIKE '%$feed%'"); if($que) // Если все ОК то, рисуем шапку таблицы { echo "<table id='myTable' class='tablesorter' width='100%'>"; echo "<thead><tr><th width='30%'>Название</th><th width='12%'>Уровень</th><th width='20%'>Город</th><th width='16%'>До моря</th><th width='22%'>Питание</th></tr></thead><tbody>"; while($hotels = mysql_fetch_array($que)) // Цикл на рисование строк { echo "<tr><td><a href='".$hotels['link']."'>".$hotels['name']."</a> </td><td>".$hotels['level']." </td><td>".$hotels['city']." </td><td>".$hotels['sea']." </td><td>". $hotels['feed']." <br>".$hotels['feed_type']." </td></tr>"; } echo "</tbody></table>"; } else // если ничего не ОК, то выводим ошибку SQL запроса { echo "<p><b>Error: ".mysql_error()."</b><p>"; exit(); } ?> 4 Часа, ничего не получилось
Tony ты вобще прочел, что я пишу? ВСЕ опшнсы надо привести к виду: <option value='эконом+' ".($_POST['level'] == 'эконом+' ? ' checked' : '').">эконом+</option>
PHP: <option <?if (isset($_POST) && $_POST["level"] == "эконом") echo "selected='selected'";?> value="эконом">эконом</option>
igordata Все перепробовал, все время ошибку выдает. работать отказывается. Johny_PHP твою сроку долго правил, но наконец то заработала: PHP: echo "<option "; if (isset($_POST) && $_POST["level"] == "эконом") echo "selected='selected' "; echo "value='эконом'>эконом</option>";
PHP: <?php include 'config.php'; // Загрузили конфиг $city = $_POST['city']; // Загрузили переменную в массив $city = mysql_real_escape_string($city); // Экранируем массив для безопасной передачи в запрос $feed = $_POST['feed']; // Загрузили переменную в массив $feed = mysql_real_escape_string($feed); // Экранируем массив для безопасной передачи в запрос $sea = $_POST['sea']; // Загрузили переменную в массив $sea = mysql_real_escape_string($sea); // Экранируем массив для безопасной передачи в запрос $level = $_POST['level']; // Загрузили переменную в массив $level = mysql_real_escape_string($level); // Экранируем массив для безопасной передачи в запрос echo "<form id='myForm' method='POST' action =''>"; echo " Уровень: <select name='level'>"; echo "<option value=''>Не учитывать</option>"; echo "<option "; if (isset($_POST) && $_POST["level"] == "эконом") echo "selected='selected' "; echo "value='эконом'>Эконом</option>"; echo "<option "; if (isset($_POST) && $_POST["level"] == "эконом+") echo "selected='selected' "; echo "value='эконом+'>Эконом+</option>"; echo "<option "; if (isset($_POST) && $_POST["level"] == "средний") echo "selected='selected' "; echo "value='средний'>Средний</option>"; echo "<option "; if (isset($_POST) && $_POST["level"] == "средний+") echo "selected='selected' "; echo "value='средний+'>Средний+</option>"; echo "<option "; if (isset($_POST) && $_POST["level"] == "высокий") echo "selected='selected' "; echo "value='высокий'>Высокий</option>"; echo "</select>"; echo " Город: <select name='city'>"; echo "<option value=''>Не учитывать</option>"; echo "<option "; if (isset($_POST) && $_POST["city"] == "Адлер") echo "selected='selected' "; echo "value='Адлер'>Адлер</option>"; echo "<option "; if (isset($_POST) && $_POST["city"] == "Анапа") echo "selected='selected' "; echo "value='Анапа'>Анапа</option>"; echo "<option "; if (isset($_POST) && $_POST["city"] == "Геленджик") echo "selected='selected' "; echo "value='Геленджик'>Геленджик</option>"; echo "<option "; if (isset($_POST) && $_POST["city"] == "Лазаревский") echo "selected='selected' "; echo "value='Лазаревский'>Лазаревский</option>"; echo "<option "; if (isset($_POST) && $_POST["city"] == "Лоо") echo "selected='selected' "; echo "value='Лоо'>Лоо</option>"; echo "<option "; if (isset($_POST) && $_POST["city"] == "Сочи") echo "selected='selected' "; echo "value='Сочи'>Сочи</option>"; echo "<option "; if (isset($_POST) && $_POST["city"] == "Туапсе") echo "selected='selected' "; echo "value='Туапсе'>Туапсе</option>"; echo "<option "; if (isset($_POST) && $_POST["city"] == "Хоста") echo "selected='selected' "; echo "value='Хоста'>Хоста</option>"; echo "</select>"; echo " До моря: <select name='sea'>"; echo "<option value=''>Не учитывать</option>"; echo "<option "; if (isset($_POST) && $_POST["sea"] == "1я линия") echo "selected='selected' "; echo "value='1я линия'>1я линия</option>"; echo "<option "; if (isset($_POST) && $_POST["sea"] == "2я линия") echo "selected='selected' "; echo "value='2я линия'>2я линия</option>"; echo "<option "; if (isset($_POST) && $_POST["sea"] == "3я линия") echo "selected='selected' "; echo "value='3я линия'>3я линия</option>"; echo "<option "; if (isset($_POST) && $_POST["sea"] == "4я линия") echo "selected='selected' "; echo "value='4я линия'>4я линия</option>"; echo "</select>"; echo " Питание: <select name='feed'>"; echo "<option value=''>Не учитывать</option>"; echo "<option "; if (isset($_POST) && $_POST["feed"] == "Без питания") echo "selected='selected' "; echo "value='Без питания'>Без питания</option>"; echo "<option "; if (isset($_POST) && $_POST["feed"] == "Завтрак") echo "selected='selected' "; echo "value='Завтрак'>Завтрак</option>"; echo "<option "; if (isset($_POST) && $_POST["feed"] == "2х разовое") echo "selected='selected' "; echo "value='2х разовое'>2х разовое</option>"; echo "<option "; if (isset($_POST) && $_POST["feed"] == "3х разовое") echo "selected='selected' "; echo "value='3х разовое'>3х разовое</option>"; echo "<option "; if (isset($_POST) && $_POST["feed"] == "Доп. плата") echo "selected='selected' "; echo "value='Доп. плата'>Доп. плата</option>"; echo "<option "; if (isset($_POST) && $_POST["feed"] == "Все включено") echo "selected='selected' "; echo "value='Все включено'>Все включено</option>"; echo "</select><p></p>"; echo "<p style='text-align: center;'><input type='submit' value='Отправить запрос'/> <INPUT type='reset' value='Отчистить'></p></form>"; $que = mysql_query("select * from hotels WHERE city LIKE '$city%' AND sea LIKE '%$sea' AND level LIKE '$level%' AND feed LIKE '%$feed%'"); if($que) // Если все ОК то, рисуем шапку таблицы { echo "<table id='myTable' class='tablesorter' width='100%'>"; echo "<thead><tr><th width='30%'>Название</th><th width='12%'>Уровень</th><th width='20%'>Город</th><th width='16%'>До моря</th><th width='22%'>Питание</th></tr></thead><tbody>"; while($hotels = mysql_fetch_array($que)) // Цикл на рисование строк { echo "<tr><td><a href='".$hotels['link']."'>".$hotels['name']."</a> </td><td>".$hotels['level']." </td><td>".$hotels['city']." </td><td>".$hotels['sea']." </td><td>". $hotels['feed']." <br>".$hotels['feed_type']." </td></tr>"; } echo "</tbody></table>"; } else // если ничего не ОК, то выводим ошибку SQL запроса { echo "<p><b>Error: ".mysql_error()."</b><p>"; exit(); } ?>
Tony Циклы отменили? 1. Формируется массив с городами, классами, питанием и др. array('type' => array( ... )) 2. С помощью вложенных циклов формируется таблица Преимущества? А надо объяснять? Когда у тебя будет штук 10 столбцов и в каждом по сотне строк, например, то я сильно что-то сомневаюсь о твоём желании для каждой строки дописывать selected и созависимости, если такие возникнут. Исправить, расширить ил исузить плохо спроектированный проект практически невозможно без смены его архитектуры на ещё блее херовую.