Добавление «Выбрать все» в раскрывающийся список

Это мой запрос:

 <cfquery name="qry" datasource="#variables.staffDs#">
  SELECT
    firstname + ' ' + surname name, userid, mobileno, extension
  FROM
    currentstaff
  WHERE
    (mobileno IS NOT NULL OR
     Left(LTrim(extension), 2) = '07')
 </cfquery>

Это мой раскрывающийся список ColdFusion:

  <select name="to" id="to">
  <option value=""> -- Select -- </option>
  <option style="font-weight: bold" value="">Send to All</option>
  <cfoutput query="people">
    <option value="#qry.userid#">#qry.name#</option>
  </cfoutput>
  </select>

Имена всех людей отображаются в раскрывающемся списке.

Что я хотел бы сделать, так это добавить параметр в верхней части раскрывающегося списка «Отправлено всем», чтобы выбрать всех пользователей, и я не уверен, как это сделать.

Я хотел бы включить любой дополнительный SQL, который мне может понадобиться, в мой текущий запрос, если это необходимо.


person Alias    schedule 25.10.2012    source источник
comment
это работа для тебя? но используйте этот тип данных другого поля как строку, как я делаю '' для других столбцов   -  person Pranay Rana    schedule 25.10.2012
comment
добро пожаловать .. не забудьте проголосовать за это ....   -  person Pranay Rana    schedule 25.10.2012


Ответы (3)


вам просто нужно изменить вот так, если это возможно, просто добавьте

Select 'Select All'
 union

на ваш запрос, окончательный код, например

 Select 'Select All','','',''
 union
 SELECT
    firstname + ' ' + surname name, userid, mobileno, extension
  FROM
    currentstaff
  WHERE
    (mobileno IS NOT NULL OR
     Left(LTrim(extension), 2) = '07')
person Pranay Rana    schedule 25.10.2012

Есть ли причина делать это в SQL, а не в HTML, как показывает ваш пример? Я работал с системами, где «Выбрать все» или «Пожалуйста, выберите» объединены в запрос, а недостатком является то, что вы не можете повторно использовать этот запрос для других целей, потому что теперь запрос генерирует что-то, что полезно только в раскрывающийся список HTML. На мой взгляд, получение списка людей — это одна задача, а создание пользовательского интерфейса с этими людьми и опция «Выбрать все» — другая задача.

person barnyr    schedule 25.10.2012
comment
определите функцию findUsersWithMobilePhones(), которая выполняет и возвращает ваш существующий запрос. Теперь это можно использовать повторно и использовать в других местах. Затем вы можете использовать свой существующий код Coldfusion для отображения списка. Если я неправильно понимаю вопрос и ваш существующий код не работает, все, что я бы сделал по-другому, - это переместить SQL в какую-то функцию или объект запроса, чтобы он был описан и повторно использовался. Возможно, также измените значение параметра «Все пользователи», как показывает Мэтт Буше в своем ответе. - person barnyr; 25.10.2012

Я бы не стал добавлять параметр для запроса, я бы добавил дополнительную строку параметров в HTML, и когда выбрано SELECT ALL, я бы обновил свой запрос, чтобы не фильтровать.

<select name="to" id="to">
  <option value=""> -- Select -- </option>
  <option value="ALL">SELECT ALL</option>
  <option style="font-weight: bold" value="">Send to All</option>
  <cfoutput query="people">
    <option value="#qry.userid#">#qry.name#</option>
  </cfoutput>
</select>
person Matt Busche    schedule 25.10.2012