За последние 24 часа нас посетил 52181 программист и 1463 робота. Сейчас ищут 1218 программистов ...

Выбрать определенные чекбоксы

Тема в разделе "JavaScript и AJAX", создана пользователем EndoCrinolog, 17 окт 2014.

  1. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Знаю, я мастер запарки. Но суть такая. Для каждой страницы настраивается доступ для определенного вида пользователя. И напротив каждой есть куча чекбоксов. Хотелось бы сделать что-то вроде "применение общей темы", когда нажимаешь на кнопку и выбираются определенные чекбоксы.
    Функция такая:
    Код (Text):
    1. function pageTheme(id,av /* тот самый av, про который я скажу ниже */,nav,p4v,np4v,za,so,ad,oe,sp)
    2. {
    3.     twoCB = $('input:checkbox[name*='+id+']');
    4.     console.log(twoCB);
    5. }
    id - это id страницы в базе данных. Всё остальное - передаваемые параметры (1 или 0, то есть, есть ли доступ к разделу для данного из типов пользователей или нет).

    Вот что генерит php:
    Код (Text):
    1. <label $ron>
    2. <input type="radio" name="pg[$id][2][N]" value="1">
    3. </label><br/>
    4. <label $roff>
    5. <input type="radio" name="pg[$id][2][N]" value="0" checked>
    6. </label>
    Вот и суть проблемы: как мне сделать, чтобы при нажатии на кнопку выполнялась функция выше по типу "выбрать checkbox где в имени есть id и value равный (скажем) av, и присвоить ему аттрибут checked?"
    Или это слишком сложно для селектора?

    Суть такая. Вот "незасхемленная" страница:
    [​IMG]
    Нажимаем на "Зак.", получаем:
    [​IMG]

    Добавлено спустя 12 минут 25 секунд:
    нашел в документах jquery
    буду пробовать...

    Добавлено спустя 28 минут 41 секунду:
    Получилось, но возникла другая проблема.
    На код:
    Код (Text):
    1. $('input:checkbox[name*=pg\['+id+'\]\['+i+'\]][value*='+arr[i]+']').attr('checked',true);
    он выдает ошибку:
    Ах да, забыл. Преобразил функцию:
    Код (Text):
    1. function pageTheme(id,arr)
    2. {   //av,nav,p4v,np4v,za,so,ad,oe,sp
    3.     for (var i=0; i<arr.length; i++)
    4.     {
    5.         $('input:checkbox[name*=pg\['+id+'\]\['+i+'\]][value*='+arr[i]+']').attr('checked',true);
    6.     }
    7. }
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    сорри, ты закончил сам с собой общаться?)))) вопрос-то какой остался?))))
     
  3. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    Да, по прежнему не работает и выдает ахинею. Я перевел все имена в id="pg[ID]t-[N]", где ID - ид страницы и N - это какой из доступов настроить.
    Вот в чем проблема. Вот кнопка передающая что и как отметить:
    Код (Text):
    1. [<a href="javascript:pageTheme($id,[1,0,1,1,0,1,1,0,1])">Зак.</a>]
    В массиве - цифры. 0 - это отключить, 1 - это включить.
    Вот функция:
    Код (Text):
    1. <script>
    2. function pageTheme(id,arr)
    3. {   //av,nav,p4v,np4v,za,so,ad,oe,sp
    4.     for (var i=0; i<arr.length; i++)
    5.     {
    6.         $('#pg'+id+'t\-'+i+'[value=0]').attr('checked',false);
    7.         $('#pg'+id+'t\-'+i+'[value=1]').attr('checked',false);
    8.         $('#pg'+id+'t\-'+i+'[value='+arr[i]+']').attr('checked',true);
    9.     }
    10. }
    11. </script>
    Находит нормально, всё работает. Но вот какой результат до клика по кнопке:
    [​IMG]
    и вот какой после:
    [​IMG]

    Соответственно, вопрос... что я делаю не так? Зеленая - это 1, розовая - 0. Странно, что чекбоксы убираются совсем....

    Добавлено спустя 2 минуты 30 секунд:
    СТранно другое... Переведя все чекбоксы в ВЫКЛ и нажав на кнопку - всё стало норм....

    Добавлено спустя 4 минуты 14 секунд:
    Я так понял, убирается совсем в том случае, если есть расхождение между текущим установленным радио и при попытке его изменить...
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    всё работает? просто я пока вникаю уже новая инфа приходит. кажется у тебя на самом деле всё ок и ты просто сам сейчас до всего дойдешь и проблемы у тебя нет))) хорошей пятницы)))
     
  5. EndoCrinolog

    EndoCrinolog Активный пользователь

    С нами с:
    4 фев 2012
    Сообщения:
    205
    Симпатии:
    1
    Адрес:
    Тольятти
    имею в виду, если изначально все на 0 перевести и нажать - приведет к нормальному виду...

    Добавлено спустя 3 минуты 28 секунд:
    Короче, мне просто нужен переключатель ммежду двумя одноименными, но разными по valu'ям радиобоксами