powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Массив через форму.
17 сообщений из 17, страница 1 из 1
Массив через форму.
    #36379628
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть список с полями выбора(чекбокс). При отправке формы нужно передать обработчику массив из значений этих выбраных чекбоксов.
Например есть такой список:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...
<tr class="first">
     <td><input type="checkbox" name="01" /></td>
     <td><span> 000001 </span></td>
</tr>	
<tr class="second">
    <td><input type="checkbox" name="02" /></td>
    <td><span> 000002 </span></td>
</tr>
...


Когда отправилась форма, надо передать обработчику массив имен выбраных чекбоксов. Эта таблицы находится не в форме. Выходит ее надо в любом случае в форму запихивать?
А вообщем задача такая: имеется список клиентов, и снизу селект, в котором варианты действия с выбраными(удалить, заблокировать, разблокировать).

Как решить такую задачу? Заранее спасибо всем кто прочитал.
...
Рейтинг: 0 / 0
Массив через форму.
    #36379645
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EsofterКак решить такую задачу?Пробежаться по таблице, посмотреть чекбоксы, выбранные склеить в некоторую строку.
На форме должно быть поле типа hidden (не забываем указать name, чтоб ушло на сервер), его значению присвоить эту строку.
Всё это перед отправкой формы.
...
Рейтинг: 0 / 0
Массив через форму.
    #36379651
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на сервере разобрать значение, пришедшее с этого поля
...
Рейтинг: 0 / 0
Массив через форму.
    #36379669
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечEsofterКак решить такую задачу?Пробежаться по таблице, посмотреть чекбоксы, выбранные склеить в некоторую строку.
На форме должно быть поле типа hidden (не забываем указать name, чтоб ушло на сервер), его значению присвоить эту строку.
Всё это перед отправкой формы.

Понял, спасибо.
...
Рейтинг: 0 / 0
Массив через форму.
    #36379674
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

Но думаю потом еще появятся вопросы, так что пока не убегай никуда :).
...
Рейтинг: 0 / 0
Массив через форму.
    #36379748
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый вопрос по этому методу:

Это просто чекбоксы, а мне надо знать айдишники клиентов. Есть идея у этого чекбокса айди ставить такое, как айди соответствующего клиента. При сабмите формы вызвать функцию гетЭлементсБайТагНейм(), так я соберу все чекбоксы, потом в цыкле по этой колекции бежать и конкантеировать к значению хиддена айди чекбокса который выбран.

Нормальное решение?
...
Рейтинг: 0 / 0
Массив через форму.
    #36379815
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EsofterНормальное решение?
Главное разделитель нормальный придумай...
...
Рейтинг: 0 / 0
Массив через форму.
    #36379868
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaEsofterНормальное решение?
Главное разделитель нормальный придумай...

Ясное дело.

Вот написал, но не работает. Я с джаваскриптом не очень дружу.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
	function select_all()
	{
		var head_select = document.getElementsById('headselect');//это верхний чекбокс
		var val = '';
		if(head_select.checked=='')
			val = 'checked';
		else
			val = '';
		var elems = document.getElementsByName('galka');
		for(var i =  0 ;i< elems.length;i++)
		{
			elems[i].checked = val;
		}
	}

Все чекбокы всегда выбраны. Думаю это из-за того что если у элемента чекбокс просто присутствует атрибут чекед, даже без чекед="чекед", он все равно будет выбран. Как его правильно сделать нечекед?
...
Рейтинг: 0 / 0
Массив через форму.
    #36379918
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот сделал

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	function select_all()
	{
		var head_select = document.getElementById('headselect');
		
		var elems = document.getElementsByName('galka');
		for(var i =  0 ;i< elems.length;i++)
		{
			elems[i].checked = head_select.checked;
		}
	}
...
Рейтинг: 0 / 0
Массив через форму.
    #36379922
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EsofterВот написал, но не работает.
Значит пора тебе писать тестовый пример... Его скопипастят и помогут/подправят если надо...
...
Рейтинг: 0 / 0
Массив через форму.
    #36379928
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Esofter , чекет он либо труе, либо фелзе (простите за произношение )
...
Рейтинг: 0 / 0
Массив через форму.
    #36381689
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На jQuery:
Код: plaintext
var checkboxes = $.map($(":checkbox:checked"), function(ch){return $(this).attr("name")});
Вернет массив всех выбранных чекбоксов в документе.
...
Рейтинг: 0 / 0
Массив через форму.
    #36382973
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получается.
Вот функция которая должна собирать значения айди всех выбраных чекбоксов, лепить их в одну строку и присваивать значению элемента хиддена в форме.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function getClients()
	{
      var elems = document.getElementsByName('galka');
      var clients = '';
      for(var i =  1 ;i< elems.length;i++)
		  {
          if(elems[i].checked)
            {
             clients=clients+elems[i].id+'*';
            }
		  }
		  alert(clients);
		  document.getElementById('array_clients').value = clients;//результат в хидден  
	}

Получается что у всех чекбоксов name="galka", id="<айди клиента>".
Делал вар_дамп пост массива, значение того хидден єлемента пустое.
Эта функция вызывается на онсабмит формы.
...
Рейтинг: 0 / 0
Массив через форму.
    #36383045
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EsofterНе получается.
Повторюсь...
Значит пора тебе писать тестовый пример... Его скопипастят и помогут/подправят если надо...
...
Рейтинг: 0 / 0
Массив через форму.
    #36383256
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaEsofterНе получается.
Повторюсь...
Значит пора тебе писать тестовый пример... Его скопипастят и помогут/подправят если надо...

Ну вот например так

Код: 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.
37.
38.
<?
if($_POST)
{
  echo 'We get this string :'.$_POST['array_clients'];
}
?>
<input type = "checkbox" name = "galka" id="1" value = "checked" />
<input type = "checkbox" name = "galka" id="2" value = "checked" />
<input type = "checkbox" name = "galka" id="3" value = "checked" />
<input type = "checkbox" name = "galka" id="4" value = "checked" />
<input type = "checkbox" name = "galka" id="5" value = "checked" />

<form action="" method="post" id="frm1" name="frm1" onSubmit="getClients();">
с отмеченными:
<select size="1" name="todo" onChange = "document.forms.frm1.submit()">
    		<option value="delete">Удалить</option>
    		<option value="block">Заблокировать</option>
    		<option value="unblock">Разблокировать</option>
</select>
<input type="hidden" value="" name="array_clients" id="array_clients">
</form>

<script type="text/javascript">
	function getClients()
	{
      var elems = document.getElementsByName('galka');
      var clients = '';
      for(var i =  1 ;i< elems.length;i++)
		  {
          if(elems[i].checked)
            {
              clients=clients+elems[i].id+'*';
            }
		  }
		  alert(clients);
		  document.getElementById('array_clients').value = clients;  
	}
</script>

Сейчас приходит пустая строка в $_POST['array_clients']
...
Рейтинг: 0 / 0
Массив через форму.
    #36383291
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Esofter
Код: plaintext
<select size="1" name="todo" onChange = "document.forms.frm1.submit()">
Когда сабмитишь форму программно (вызывая form.submit()), то onSubmit не вызывается (он запускается по щелчку на <input type="submit">)

Можно так:
Код: plaintext
<select size="1" name="todo" onChange = "with(document.forms.frm1){onsubmit();submit();}">

зы: Да, и перебор массива начинается с 0, а не с 1.
...
Рейтинг: 0 / 0
Массив через форму.
    #36383300
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечEsofter
Код: plaintext
<select size="1" name="todo" onChange = "document.forms.frm1.submit()">
Когда сабмитишь форму программно (вызывая form.submit()), то onSubmit не вызывается (он запускается по щелчку на <input type="submit">)

Можно так:
Код: plaintext
<select size="1" name="todo" onChange = "with(document.forms.frm1){onsubmit();submit();}">

зы: Да, и перебор массива начинается с 0, а не с 1.

Понял.

зы: знаю что с нуля. просто первый чекбокс для включения-выключения всех остальных.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Массив через форму.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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