powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / CSP. Тег select multiple. Как получить все значения?
7 сообщений из 7, страница 1 из 1
CSP. Тег select multiple. Как получить все значения?
    #35923576
Erick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть форма, на которой размещен объект <select multiple> и кнопка. Ну и два других селекта, с ними проблем нет.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
&html<<select multiple name=GetForms style="width:350;height:200">>
&sql(declare Subs cursor for select ID,Name into :ID,:Name from Report_Form.Form WHERE Name %STARTSWITH 'М' order by ID)
&sql(open Subs)
f  &sql(fetch Subs) q:SQLCODE  w "<option value='",ID,"'",$S(Sub=ID:" selected", 1 :""),">",Name,"</option>"
&sql(close Subs)
&html<</select>
<input type=button value="Сгенерировать XML" onClick="XMLExport();">
По нажатию кнопки вызывается функция JS.
Код: plaintext
1.
2.
3.
4.
5.
6.
<script language=JavaScript>
function XMLExport()
{
  #call(..XMLCreate(fxmlcreator.month.value,fxmlcreator.year.value,fxmlcreator.GetForms.value))#
}
</script>
Она вызывает метод класса XMLCreate.
Код: plaintext
1.
2.
3.
4.
ClassMethod XMLCreate(month,year,GetForms)
{
 
}
Если было выбрано несколько значений из списка, как получить все их значения? В моем случае передается только первое. В инете смотрел, но там в основном примеры для PHP, там это решается путем объявления имени select как массива.

Заранее благодарен.
...
Рейтинг: 0 / 0
CSP. Тег select multiple. Как получить все значения?
    #35924059
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос больше из области ХТМЛ+ЯваСкрипт...

авторДля объектов Select, допускающих возможность множественного выбора (то есть если тэг SELECT имеет атрибут MULTIPLE), свойство selectedIndex не очень подходит для использования. В этом случае оно возвращает индекс первого выбора. Чтобы найти все выбранные опции, Вы должны пройти циклом по опциям и проверить каждую опцию индивидуально. Например, чтобы напечатать список всех выбранных опций в selection-списке mySelect, Вы можете использовать такой код:

Код: plaintext
1.
2.
3.
for (var i =  0 ; i < mySelect.options.length; i++) {
   if (mySelect.options[i].selected)
      document.write(" mySelect.options[i].text\n")
}


Взято тут ...

А передавать в метод можно строкой через разделитель.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
CSP. Тег select multiple. Как получить все значения?
    #35924127
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно проще, так как в cspbroker.js уже написана соответствующая функция:
Код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<html>

<head>

<script language="JavaScript" type="text/javascript">

  function XMLExport()
  {
    #call(..XMLCreate(cspGetSelectList(self.document.fxmlcreator.GetForms).join(',')))#
  }
  </script>

</script>

</head>

<form name="fxmlcreator">
  <select name="GetForms" multiple>
  <option value="10" selected>asd1
  <option value="20" selected>asd2
  <option value="40" selected>asd3
  </select>
  <input type="button" value="Сгенерировать XML" onClick="XMLExport();">
</form>

<hr>

<!-- Define a server-side method to process in-page events -->

  <script language="Cache" method="XMLCreate" arguments="test">
    s ^a=test
    Quit
</script>

</body>
</html>

Можно обойтись и без join , тогда переменная test будет массивом, то есть:
Код: plaintext
1.
2.
3.
4.
...
s ^a( 1 )=test( 1 )
s ^a( 2 )=test( 2 )
...
Код проверялся на Caché 2009.1.FT2
...
Рейтинг: 0 / 0
CSP. Тег select multiple. Как получить все значения?
    #35924139
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit , т.е. в метод можно передать массив?
...
Рейтинг: 0 / 0
CSP. Тег select multiple. Как получить все значения?
    #35924191
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa servit , т.е. в метод можно передать массив?
Получается, что - да. Причём тип переменной на её "массивность" не влияет.
...
Рейтинг: 0 / 0
CSP. Тег select multiple. Как получить все значения?
    #35924229
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно... А как тогда "написать/описать" передачу JS массива? Просто сунуть в параметр его имя...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
CSP. Тег select multiple. Как получить все значения?
    #35924794
Erick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо, получилось.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / CSP. Тег select multiple. Как получить все значения?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]