Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Згачения выделенных checkbox (https://javascript.ru/forum/jquery/6962-zgacheniya-vydelennykh-checkbox.html)

vova_b 08.01.2010 15:43

Згачения выделенных checkbox
 
Привет! Прошу помощи с такой проблемой, я вывожу список пользователей из БД, возле каждого пользователя рядом есть checkbox c value=имя пользователя. Теперь мне надо с помощью jquery получить массив value всех выделенных checkbox и передать их в php фаил. Негде не могу найти как это реализовать.

micscr 08.01.2010 17:11

function getValues() {
    var list = null, res = '';
    list = $(':checkbox:checked');
	list.each( function(ind) {
	    res += $(this).val();
		if (ind < list.length - 1) res +=','; // например через запятую
	});
	return res;
}

vova_b 08.01.2010 17:50

Цитата:

Сообщение от micscr (Сообщение 39966)
function getValues() {
    var list = null, res = '';
    list = $(':checkbox:checked');
	list.each( function(ind) {
	    res += $(this).val();
		if (ind < list.length - 1) res +=','; // например через запятую
	});
	return res;
}

Скажите оно будет просматривать все checkbox которые есть на страницы или надо list = $(':checkbox:checked'); надо указать id chekbox ??

micscr 08.01.2010 18:22

В моем примере -да, все - это ж я для примера. А там вы уже как надо вам делайте.
Если например нужные заключены в какой-то <div id="xx"> то можно:
list = $(':checkbox:checked', $('#xx'));
а лучше
list = $('#xx input:checkbox:checked');
Или можно нужные вам классом каким то пометить
list = $('.myclass:checkbox:checked');
Смотрите селекторы, там не сложно.

vova_b 08.01.2010 18:45

Спасибо буду смотреть!!!

subzey 08.01.2010 19:41

Цитата:

Сообщение от vova_b
возле каждого пользователя рядом есть checkbox c value=имя пользователя. Теперь мне надо … передать их в php фаил.

Просто отправьте форму.

micscr 08.01.2010 19:47

Цитата:

Сообщение от subzey (Сообщение 39979)
Просто отправьте форму.

А мне кажется это о AJAX.

vova_b 08.01.2010 20:53

Да Вы правы просто форму отправить не пойдет, у меня админка сайта на full ajax

vova_b 08.01.2010 21:22

еще вопросик, негде не могу найти как работает цикл each , никогда до этого с ним не работал.... не подскажите как он устроен?

subzey 09.01.2010 03:07

Аякс ради аякса?

vova_b,
Вызывает функцию для каждого элемента из набора. У функции два параметра — порядковый номер и элемент DOM, с таковым номером. Второй, впрочем, будет тем же самым, что и this.
$("div").each(
	function(i, el){
		alert("Я " + i + "-й элемент в наборе и зовут меня " + this.tagName);
	}
);


Не перепутатйте $().each() и $.each()! Делают они похожие вещи, но параметры принимают разные.

vova_b 09.01.2010 10:37

Цитата:

Сообщение от subzey (Сообщение 40020)
Аякс ради аякса?

vova_b,
Вызывает функцию для каждого элемента из набора. У функции два параметра — порядковый номер и элемент DOM, с таковым номером. Второй, впрочем, будет тем же самым, что и this.
$("div").each(
	function(i, el){
		alert("Я " + i + "-й элемент в наборе и зовут меня " + this.tagName);
	}
);


Не перепутатйте $().each() и $.each()! Делают они похожие вещи, но параметры принимают разные.

Спасибо!

some0ne 24.12.2013 14:19

Накидал скрипт по аналогу выше.... нужно собрать в массив айди всех чекнутых боксов
$('.Restore').click(function () {
        var list = null, res = [];
        var i = 0;

        list = $(':checkbox:checked');
        list.each( function() {
            res[i] = $(this).attr("id");
            i++;
        })

        return res;
    })


как мне теперь res передать в php скрипт !?

ksa 24.12.2013 15:01

Цитата:

Сообщение от some0ne
как мне теперь res передать в php скрипт !?

Сабмит некой формы или Аджакс...

some0ne 24.12.2013 15:29

Можно пример на аджаксе !?

ksa 24.12.2013 15:47

Цитата:

Сообщение от some0ne
Можно пример на аджаксе !?

Они есть в любой книжке...

Для примера...
http://jquery-docs.ru/Ajax/jQuery.ge...tacallbacktype
http://jquery-docs.ru/Ajax/jQuery.po...tacallbacktype

some0ne 24.12.2013 16:01

Написав так
$('.Restore').click(function () {
	        var list = null, res = [];
	        var i = 0;
	 
	        list = $(':checkbox:checked');
	        list.each( function() {
	            res[i] = $(this).attr("id").value;
	            i++;
	        })
	 
	        $.post("test.php", { res });
	    })


А в test.php написав
$data = array();
$data = $_POST['res'];


в $data получу масив id чекбоксов ? Или что то накосячил !?

ksa 24.12.2013 16:13

Цитата:

Сообщение от some0ne
Написав так
res = []
...
{ res }

Ужос! :blink:

some0ne 24.12.2013 16:18

$.post("Controller.php", { 'res[]' : res });


Кажись так вернее =)

ksa 24.12.2013 16:24

Цитата:

Сообщение от some0ne
res[]

а скобки зачем?

ksa 24.12.2013 16:26

some0ne, ты про правила формирования УРЛа что-то слышал?
Так вот на основе данных объекта просто сделают тот УРЛ.

рони 24.12.2013 16:30

some0ne,
:write:
$.post("test.php", $(':checkbox:checked').serialize());

some0ne 24.12.2013 16:48

Из книги :
Отсылает массивы данных на сервер (результат операции все еще игнорируется).

$.get("test.php", { 'choices[]': ["Jon", "Susan"]} );


Вот и я
$.post("Controller.php", { 'res[]' : res });
отправляю массив ! Ну или что то не так понял

ksa 24.12.2013 20:52

Цитата:

Сообщение от some0ne
Ну или что то не так понял

Я сам массивы никогда не слал... Т.ч. пробуй уже самостоятельно. :)


Часовой пояс GMT +3, время: 16:59.