[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выподающее меню
nasferatu
На странице с помощью функции выводится 2 выподащих меню. Требуется по нажатию выбранные данные отправить обработчику, но где указать имя для передачи???

функция отображения меню:

PHP
function all_view($dbname,$dbstr)
    {
        echo 
"<select name='menu1' onChange='MM_jumpMenu(,this,0)' class='add_regist'>";
        
$resultdb mysql_query ("SELECT * FROM $dbname");
        
$result mysql_fetch_array ($resultdb);
        do
        {
            echo 
"<option>".$result[$dbstr]."</option>";
        }
        while (
$result mysql_fetch_array ($resultdb));        
        echo 
"</select>";
    }




Спустя 9 минут, 1 секунда (22.02.2009 - 16:14) nasferatu написал(а):
Вопрос снят. Из-за собственной ошибки я не получил сразу ответ. Но теперь подправил код и все получилось.

Спустя 13 дней, 1 час, 40 минут, 20 секунд (5.03.2009 - 17:54) nasferatu написал(а):
такая проблема:
с помощью вышенаписанной функции у меня выводится выподающий список, данные берутся из БД. При ошибке заполнения полей, форма отображается опять для корректировки. Как заставить выподающий список запомнить ранее выбранное значение???
Вставляю в <option> value=, не помагает.

Спустя 4 часа, 33 минуты, 55 секунд (5.03.2009 - 22:28) kirik написал(а):
для <option> нужно прописать selected="selected".
Код
<option value="2" selected="selected">2</option>

Спустя 13 часов, 9 минут, 18 секунд (6.03.2009 - 11:37) nasferatu написал(а):
не прокатывает. Добавил и теперь отображается последнее значение, вместо первого и все равно заставить запомнить не получилось.

Вот моя функция:
PHP
function all_view($dbname,$dbstr,$menuname)
{
  echo "<select name='$menuname' onChange='MM_jumpMenu(,this,0)' class='add_regist'>";
  $resultdb = mysql_query ("SELECT $dbstr FROM $dbname");
  $result = mysql_fetch_array ($resultdb);
  do echo "<option>".$result[$dbstr]."</option>";
  while ($result = mysql_fetch_array ($resultdb));        
  echo 
"</select>";
}

Один из вызовов функции:

PHP
all_view ($country,$country,$coun);

Спустя 27 минут, 34 секунды (6.03.2009 - 12:05) kirik написал(а):
Цитата (nasferatu @ 6.03.2009 - 03:37)
Добавил и теперь отображается последнее значение, вместо первого и все равно заставить запомнить не получилось.

Ну дык свой код-то нужно поправить, а не тупо вставить smile.gif

PHP
function all_view($dbname,$dbstr,$menuname,$selected=null)
{
  echo 
"<select name='$menuname' onChange='MM_jumpMenu(,this,0)' class='add_regist'>";
  
$resultdb mysql_query ("SELECT $dbstr FROM $dbname");
  
$result mysql_fetch_array ($resultdb);
  do echo 
"<option".(($selected == $result[$dbstr]) ? selected="selected" null).">".$result[$dbstr]."</option>";
  while (
$result mysql_fetch_array ($resultdb));        
  echo 
"</select>";
}

$selected - необязательный параметр в который передаешь то, что нужно выделить.

Спустя 3 часа, 56 минут, 1 секунда (6.03.2009 - 16:01) nasferatu написал(а):
kirik
через раз пропадает первый пункт

Спустя 10 минут, 45 секунд (6.03.2009 - 16:12) sergeiss написал(а):
А кто-нибудь мне объяснит, в чем "прикол" такой конструкции
PHP
$result mysql_fetch_array ($resultdb);
  do echo 
"<option".(($selected == $result[$dbstr]) ? selected="selected" null).">".$result[$dbstr]."</option>";
  while (
$result mysql_fetch_array ($resultdb));

хотя логичнее mysql_fetch_array только один раз вызывать?
Вот так

PHP
while ($result mysql_fetch_array ($resultdb))
{
       echo 
"<option".(($selected == $result[$dbstr]) ? selected="selected" null).">".$result[$dbstr]."</option>";
}

Тем более, что если данных нету, то в первом случае будут либо ошибки, либо просто некорректные данные на странице.
А в моем случае все будет полностью корректно.

Спустя 7 минут, 27 секунд (6.03.2009 - 16:19) nasferatu написал(а):
это все хорошо, но по прежнему у меня не работает

Спустя 9 минут, 11 секунд (6.03.2009 - 16:28) sergeiss написал(а):
Сделай вот что. Когда страница создана, посмотри ее код. И можешь даже выложить этот код сюда. Достаточно только ту часть, где описан этот выпадающий список. Вполне возможно, что что-то у тебя неправильно получается.

Спустя 3 часа, 35 минут, 39 секунд (6.03.2009 - 20:04) nasferatu написал(а):
но для начала выдает ошибку на эту строку syntax error, unexpected '='
PHP
echo "<option".(($selected == $result[$dbstr]) ? selected="selected" : null).">".$result[$dbstr]."</option>";


Спустя 5 минут, 3 секунды (6.03.2009 - 20:09) twin написал(а):
Вот так попробуй
PHP
<?
echo 
"<option".(($selected == $result[$dbstr]) ? "selected=\"selected\"" null).">".$result[$dbstr]."</option>";

Спустя 3 минуты, 17 секунд (6.03.2009 - 20:12) nasferatu написал(а):
у меня на одной странице, 2 вызова этой функции с разными параметрами.
исправил вместо selected="selected", "selected=\"selected\"". После этого, сначала у одного списка пропадает первое значение, а потом у второго и так чередуется.

Спустя 20 минут, 43 секунды (6.03.2009 - 20:33) twin написал(а):
Потому что вывод идет непосредственно в теле функции. Если несколько вызовов, нужно публиковать возвращаемый результат, тогда будет все ровно.

Спустя 13 минут, 58 секунд (6.03.2009 - 20:47) nasferatu написал(а):
twin
я уже разобрался
PHP
echo "<option".(($selected == $result[$dbstr]) ? " selected" null).">".$result[$dbstr]."</option>";

всего лишь надо было указать " selected", пробел обязателен.
всем спасибо.
sergeiss, все-таки полезно просматривать код wink.gif

Спустя 1 час, 2 минуты, 16 секунд (6.03.2009 - 21:49) sergeiss написал(а):
Цитата (nasferatu @ 6.03.2009 - 20:47)
sergeiss, все-таки полезно просматривать код wink.gif

"Родители плохого не посоветуют" (С) из рекламы smile.gif
Быстрый ответ:

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