Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Выпадающий список - как получить выбранную строку, если она содержит пробелы?  (Прочитано 7939 раз)
0 Пользователей и 1 Гость смотрят эту тему.
andrystepa
Помогающий

ru
Offline Offline

« : 27-03-2009 13:57 » 

Боюсь что я уже завалил форум своими вопросами. Но что поделаешь - это один из редких форумов, где я всегда и быстро получал ответы на свои вопросы. Вопрос такой:
Есть таблица в базе данных, содержащая список отделов предприятия. Я создаю на PHP страницу с выпадающим списком из этой таблицы. Мне нужно, чтобы этот список выдавал в результате строку с названием отдела, выбранную пользователем. Вот мой код:
Код:
ffunction printNamelist($result, $fields, $nm, $idd) {
$output = <<<HERE
<select name=$nm id=$idd>
HERE;
while ($names = mysql_fetch_assoc($result)) {

$output .= " <option value=".$names[$fields."_name"].">";

$output .= "".$names[$fields."_name"]."</option>\n";
}
$output .= "</select>";
return $output;
}

Этот код у меня без проблем работал, пока в списках были строки из одного слова. А тут строки с названиями отделов содержат по 2-3 слова, и список выдает вместо полного названия - первое слово в названии. Я так понимаю, что надо как-то изменить строку, присваемую переменной value, но как?
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 27-03-2009 14:08 » 

странно
Код:
<select name="point" id="point">
        <option value="Спорткомплекс"> Спорткомплекс </option>
        <option value="Веснина"> Веснина </option>
        <option value="Красина"> Красина </option>
        <option value="Молния"> Молния </option>
        <option value="общ1_5 Чернышевская"> общ1_5 Чернышевская </option>
        <option value="общ1_7"> общ1_7 </option>
        <option value="общ4"> общ4 </option>
        <option value="общ5"> общ5 </option>
        <option value="общ2_отп"> общ2_отп </option>
        <option value="общ2_ГВ"> общ2_ГВ </option>
        <option value="общ10_от"> общ10_от </option>
</select>
У меня такой код работает
        <option value="общ1_5 Чернышевская"> общ1_5 Чернышевская </option>

Проверь генерируемый код
      
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
andrystepa
Помогающий

ru
Offline Offline

« Ответ #2 : 27-03-2009 15:41 » new

Sla, Дык, коли бы я делал этот список руками, то все бы было нормально. А так он составляется в цикле (см. первый пост). И в этом цикле он создается так, что строка, присваемая переменной value стоит без кавычек. Вот код получающейся страницы:
Код:
<select name=unitnm id=1>
<option value=Отдел Инжиниринга Проектов>Отдел Инжиниринга Проектов</option>
 <option value=Отдел Силовых Систем>Отдел Силовых Систем</option>
 <option value=Отдел Систем Управления>Отдел Систем Управления</option>
 <option value=Производственный Отдел>Производственный Отдел</option>
</select>

Кавычек не хватает! Как их туда впихнуть?
Ур-р-ра!!! Придумал!!
Код:
$output = <<<HERE
<select name=$nm id=$idd>
HERE;
while ($names = mysql_fetch_assoc($result)) {
$braket = '"';
$val =  $braket.$names[$fields."_name"].$braket;
$output .= " <option value=$val>";
$output .= "".$names[$fields."_name"]."</option>\n";
}
$output .= "</select>";

Прошу прощения. Придумал пока писал ответ.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines