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 :: Hide/show jquery в зависимости от условия

 PHP.SU

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


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

> Без описания
quinlena
Отправлено: 29 Августа, 2012 - 07:03:32
Post Id


Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012  
Откуда: Казахстан


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




Последний раз у меня была проблема с выводом чекбоксов в дереве, но я разобралась с помощью in_array. Сейчас вот думаю, как сделать так, чтобы элементы дерева показывались не все, а лишь те, в которых есть отмеченный чекбокс, чтобы был виден путь до этого чекбокса, подскажите, с помощью чего можно сделать? Куда рыть?
 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Августа, 2012 - 09:48:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




CODE (javascript):
скопировать код в буфер обмена
  1. var checkBox = $('input:checkbox');
  2. if(checkBox.is(':checked'))
  3. {
  4.        checkBox.parents('.element:eq(0)').css('display','none');
  5. }

?
 
 Top
quinlena
Отправлено: 29 Августа, 2012 - 10:24:08
Post Id


Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012  
Откуда: Казахстан


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




А eq -это что? Я поставила ваш код в document.ready, ничего не изменилось, выводится все дерево...
И еще... Нужно не чекбоксы не выводить, а просто, чтоб та ветка, где не отмечен чекбокс, чтоб она была свернута.

(Отредактировано автором: 29 Августа, 2012 - 10:26:30)

 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Августа, 2012 - 10:44:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




quinlena пишет:
Я поставила ваш код в document.ready

Мда...
Прежде чем тупо скопировать вставить, Вы не хотите разобраться что делают эти две строчки кода ?
У первого родительского элемента каждого набора чекбоксов класс element?
Заменить не хотите на свой ?
quinlena пишет:
А eq -это что?

Первый родительский элемент с классом element (я же не знаю структуру Вашего дерева).
(Добавление)
Исправьте:
CODE (javascript):
скопировать код в буфер обмена
  1. if(!checkBox.is(':checked'))
 
 Top
quinlena
Отправлено: 29 Августа, 2012 - 10:51:44
Post Id


Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012  
Откуда: Казахстан


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




Я понимаю так, мне нужно прописать класс:

Ничего не изменилось, если у <li> прописать тоже этот класс, также ничего не изменилось...
На счет дерева, то вот оно
PHP:
скопировать код в буфер обмена
  1. <div id="derevo">
  2.          <form id="form2" name="form2" method="post" action="edit_cont1.php">
  3.     <input type="hidden" name="act" value="{action}" />
  4.       <table width="100%" border="0">
  5.        
  6.         <tr>
  7.           <td><label for="id_par_service"></label>
  8. <script type="text/javascript">
  9. $(document).ready(function(){
  10.         //jQuery('#add li ul ').show();
  11.         jQuery('#add li').css('cursor','pointer');
  12. var checkBox = $('input:checkbox');
  13. if(!checkBox.is(':checked'))
  14. {
  15.        checkBox.parents('.element:eq(0)').css('display','none');
  16. }
  17. })
  18.  
  19. jQuery(function()
  20. {  
  21. jQuery('#add').slideToggle(400);
  22. }
  23. );
  24.  
  25. function tgg_parent(el){
  26.         //.css({'list-style-image': 'url(/images/papka.png)'})
  27.         //$(el).parent().children("ul").slideToggle(400);
  28.          $(el).parent().children("ul").slideToggle(400);
  29.          $(el).parent().toggleClass('plus minus');
  30.  
  31. }
  32.  
  33.  
  34. </script>
  35. <div id="add" style="display:none;">
  36.  
  37. <?PHP
  38.   $a_tree=array();
  39.   $r=mysql_query("
  40.    select
  41.     id_service,   #идентификатор элемента
  42.     id_par_service, #идентификатор родительского элемента
  43.                    #   элементы верхнего уровня содержат здесь 0
  44.     name_service,
  45.     parent #название
  46.    from
  47.         dir_service
  48.     where ud_ser='0'",$link);
  49.           if(!$r) echo mysql_error();
  50.   //  списки дочерних элементов этого массива были отсортированы по этому полю.
  51.   for($i=0;$i<mysql_num_rows($r);$i++)
  52.   {
  53.     $f=mysql_fetch_assoc($r);
  54.     if(empty($a_tree[$f['id_par_service']]))
  55.       $a_tree[$f['id_par_service']]=array();
  56.     $a_tree[$f['id_par_service']][]=$f;
  57.    
  58.   }
  59. if ($tree==0){
  60.   //Выводим данные.
  61.  //$usl_check = mysql_query("SELECT * FROM `service_cl` WHERE `id_con` = '".$can['id_con']."' and `ud_s_cl`='0' and `dateser_can`='0000-00-00'");
  62.         //while ($usl_check=mysql_fetch_array($usl_check)){
  63.   function tree_print(&$a_tree,$id_par_service=0)
  64.   {
  65.     //условие завершения рекурсии
  66.  
  67.     if(empty($a_tree[$id_par_service])) {
  68.         return;}
  69.  
  70.  
  71.          
  72.        
  73.     echo "<ul class='element'>";
  74.  
  75. foreach ($a_tree[$id_par_service] as $value)
  76. {
  77.     $a_array[$value['id_service']]=$value['name_service'];
  78. }
  79. $arr = array();
  80. $usl_check = mysql_query("SELECT * FROM `service_cl` WHERE `id_con` = '".(int)$_GET['id']."' and `ud_s_cl`='0' and `dateser_can`='0000-00-00'");
  81.          $sum=mysql_num_rows($usl_check);
  82.  $blabla="";
  83.  $j=1;
  84.         while ($usl_checki=mysql_fetch_array($usl_check)){
  85.                 $blabla.=implode('',array($usl_checki['id_service']));
  86.                 if($j < $sum){
  87.                         $blabla .= ",";
  88. }
  89.                                                 $j++;
  90.         }
  91.         $bla= explode(',',$blabla);    
  92. foreach ($a_tree[$id_par_service] as $value)
  93.     {
  94.         if (in_array($value['id_service'],$bla)){$s='checked';
  95.  
  96.         } else {$s='';
  97.         }
  98.         if ($value['parent']==1){
  99.                 echo "<li class='minus element' onclick='tgg_parent(this);'><INPUT TYPE=checkbox  NAME=parent[] onClick='apply()' VALUE=".$value['id_service']." ".$s."><span onclick='tgg_parent(this);'>".$a_array[$value['id_service']]."</span>";
  100.         }
  101.         if ($value['parent']==0){
  102.                 echo "<li class='non element' important!><INPUT TYPE=checkbox  NAME=parent[] onClick='apply()' VALUE=".$value['id_service']." ".$s."><span>".$a_array[$value['id_service']]."</span>";
  103.         }      
  104.         tree_print($a_tree,$value['id_service']);
  105.         echo "</li>";
  106.   }
  107.     echo "</ul>";
  108.   }    
  109.   tree_print($a_tree);
  110.  
  111. ?>
  112.  
  113. </div>
  114.           </td>
  115.         </tr>
  116.       </table>
  117.       <?
  118.  echo"  
  119.        </form></div>";
  120.   }

(Отредактировано автором: 29 Августа, 2012 - 10:54:27)

 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Августа, 2012 - 11:09:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




quinlena пишет:
На счет дерева, то вот оно

Вы прикалываетесь ?
Это дерево, или php код, который генерирует его ?
 
 Top
quinlena
Отправлено: 29 Августа, 2012 - 11:11:38
Post Id


Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012  
Откуда: Казахстан


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




armancho7777777 пишет:
quinlena пишет:
На счет дерева, то вот оно

Вы прикалываетесь ?
Это дерево, или php код, который генерирует его ?

Да, это код, который его генерирует.
 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Августа, 2012 - 11:13:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




Радость
Короче...
CODE (javascript):
скопировать код в буфер обмена
  1. $('.element').each(function() {
  2.     if(!$(this).find(':checkbox').is(':checked'))
  3.         $(this).css('display','none');
  4. });

(Отредактировано автором: 29 Августа, 2012 - 11:14:08)

 
 Top
quinlena
Отправлено: 29 Августа, 2012 - 11:14:44
Post Id


Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012  
Откуда: Казахстан


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




armancho7777777 пишет:
Радость
Короче...
CODE (javascript):
скопировать код в буфер обмена
  1. $('.element').each(function() {
  2.     if(!$(this).find(':checkbox').is(':checked'))
  3.         $(this).css('display','none');
  4. });

Спасибо!
 
 Top
armancho7777777 Супермодератор
Отправлено: 29 Августа, 2012 - 11:16:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


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




Не за что.
 
 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