Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Скрыть-показать колонки таблицы + активация кнопок при выборе чекбоксов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dropoff
Отправлено: 05 Января, 2013 - 16:23:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Всем привет! С Новым Годом!

Ребята, есть пара вопросов.

Есть таблица. Скажем в таблице 10 строк.
У каждой строки есть чекбокс. Вот нужно, чтобы при выборе хоть одного чекбокса, активировались нужные кнопки.
Т.е. если я выбрал один чекбокс - кнопки активны. выбрал другой - так же остаются активными. Если не одного чекбокса не выбрано, то кнопки неактивны.
Для одного чекбокса написать на jQuery такое могу. А вот для кучи...

И второй вопрос.
Касаемо этой же таблице.

Есть таблица с 5 колонками которые выводит всегда
Где-то на странице есть ряд чекбоксов, которые при выделении выводят дополнительные колонки.
Т.е.

Чекбокс 1 - Показать колонку 1
Чекбокс 2 - Показать колонку 2
Чекбокс 3 - Показать колонку 3
Чекбокс 4 - Показать колонку 4
Чекбокс 5 - Показать колонку 5

При выборе чекбокса идет AJAX запрос, где записывается в БД, что мы включили определенную колонку. Ну и естественно появляется нужная колонка в таблице без перезагрузки страницы.

Сложно такое сделать?
 
 Top
Саныч
Отправлено: 05 Января, 2013 - 16:27:24
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. $('[type="checkbox"]').click(function() {
  2.     if ($('[type="checkbox"]:checked').length) {
  3.         // активируем кнопки
  4.     } else {
  5.         // скрываем
  6.     }
  7. });


dropoff пишет:
Сложно такое сделать?
Нет.


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
dropoff
Отправлено: 05 Января, 2013 - 20:45:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Саныч, спасибо большое. я что-то решения находит уж совсем с большим количеством кода. а тут оказалось все очень просто! + вам.


А по второму вопросу.
Т.е. получается так, что колонки которые не выводятся изначально нужно просто скрывать, а как только нажали нужный чекбокс, то выводить ее(колонку)?
 
 Top
Саныч
Отправлено: 05 Января, 2013 - 20:50:31
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




dropoff, если вы все данные отдаете клиенту сразу, то да, просто скрываете их, а когда нужно показываете. Есть еще вариант: изначально выводить только нужное, потом при выборе checkbox-а, вы ведь все-равно шлете AJAX, вот в нем и получаем нужные нам данные и вствляем их в DOM.


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
dropoff
Отправлено: 05 Января, 2013 - 21:54:28
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Второй вариант интереснее. Но как быть, если таблица будет большой? Т.е. на ней может быть до 100 строк и 10 колонок с разными полями. Тормозить вся эта куча не будет случаем?
 
 Top
broshurkaplus
Отправлено: 05 Января, 2013 - 22:08:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


Помог: 2 раз(а)




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

например
скриптом выводим class="kolonka'.$num.' skrytyi"

CODE (htmlphp):
скопировать код в буфер обмена
  1. $('.kolonka'+num).removeClass('skrytyi');


удалит у всех колонок с нужным классом класс skrytyi
при смене чекбокса всем присваивал бы класс (скрывал все), а у нужных удалял

при 100 точно тормозить не будет
+ вы все равно проверяете данные посланные AJAX, поэтому если хитрых манипуляций не делать, то сразу бы отдавать все нужно

поэтому пусть юзер все повыбирает, что надо, отправит, а затем вы 1 раз проверите, чем после каждого действия отсылать и все проверять

(Отредактировано автором: 05 Января, 2013 - 22:14:29)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB