Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rozwijana treśc
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Forgoot
Witam chcialbym wiedziec jak zrobic rozwijana tresc, i jak dodac taki kod do BBCode?
Przyklad rozwijanej treści jest w news'ie na stronie: zobacz. Chodzi mi o linki:
- Grupy 1-4
- Grupy 5-8
- ....
Prosze o odpowiedź...
Balas
  1. <a href="#" onClick="if (blok1.style.display =='block') { blok1.style.display='none';} else {blok1.style.display='block';}">Link</a>
  2. <div id="blok1" style="display: none">
  3. To co ma byc wewnatrz
  4. </div>
Forgoot
A jak taką opcję dodac do bbcode? Chcialbym miec, w panelu admina jakiegos prostego skryptu news'owego (lub obojętnie jakiego), przycisk np: rozwijana tresc, abym mogl latwo dodac to w newsie lub innej tresci.
gekon
Metoda bardziej dyskretna
java script:
Kod
showHide = function(element){
element.onclick = function(){
  var p = element.parentNode.getElementsByTagName('p')[0];
  if(p.className == '' || p.className == 'visible'){
   p.className = 'hidden';
  }
  else{
   p.className = 'visible';
  }
}
}

window.onload=function(){
var parent = document.getElementById('lastByCategory')
if (parent) {
  var child = parent.getElementsByTagName('li')
  for (var i = 0; i < child.length; i++) {
   var handler = child[i].getElementsByTagName('h3')
   showHide(handler[0]);
  }
} else {
  return false;
}
}


CSS:
Kod
.visible { display: block; }
.hidden { display: none; }


HTML:
  1. <ul id="lastByCategory">
  2. <li>
  3. <h3>Polska</h3>
  4. <p>Treśc</p>
  5. </li>
  6. <li>
  7. <h3>Europa</h3>
  8. <p>Treść</p>
  9. </li>
  10. <li>
  11. <h3>Świat</h3>
  12. <p>Treść</p>
  13. </li>
  14. </ul>
Forgoot
Witam!
Utworzyłem przykładową stronę (na podst eSp): index.html (jej kod poniżej), po edycji strony o której mówiłem wcześniej. Wszystko działa, ale nadal niewiem jak tą opcję (rozwijana treść) dodać do BBCode. Chciałbym umieścić to do BBCode w skrypcie forum, jakim jest: phpbb2.
Proszę o pomoc.

  1. <script language=JavaScript>
  2. <!--//
  3.  function flip(rid)
  4.  {
  5.    current=(document.getElementById(rid).style.display == 'none') ? 'block' : 'none';
  6.    document.getElementById(rid).style.display = current;
  7.  }
  8. //-->
  9. </head>
  10. <A HREF="#" ONCLICK="flip('test'); return false;"><B>Link</B></A><SPAN ID="test"><script LANGUAGE="JAVASCRIPT">flip('test');</SCRIPT><div style="padding-bottom: 10px;padding-left: 30px; padding-top: 10px; padding-right: 30px;"><br />
  11. Tresc...
  12. </body>
  13. </html>


Pozdrawiam.

=====================

Ok, mam biggrin.gif

  1. <?php
  2.    function ukryj ( $match )   {
  3.       $id = uniqid();      
  4.       return '<a href="#" onclick="flip('' . $id . ''); return false;"><b>' . $match[1] . '</b></a><div id="' . $id . '" class="ukryj" style="display: none;">' . $match[2] . '</div>';
  5.    }
  6.    
  7.    $str = preg_replace_callback("#\[ukryj=\"?(.*?)\"?\](.*?)\[/ukryj]#si", 'ukryj', $str);
  8. ?>


JS:
Kod
function flip( rid ) {
  document.getElementById(rid).style.display = document.getElementById(rid).style.display == 'none' ? 'block' : 'none'
}


CSS:
Kod
.ukryj {
  padding-bottom: 10px; padding-left: 30px; padding-top: 10px; padding-right: 30px;
}


Używanie:
Kod
[ukryj="link"]rozwijana treść[/ukryj]


Myślę, że można temat przenieść na: php?
jezjez
Hej jak to zaimplementować na w php bez używania BBCode
Cytat
Kod PHP
<?php
function ukryj
( $match ) {
$id = uniqid();
return
'<a href="#" onclick="flip(\'' . $id . '\'); return false;"><b>' . $match[1] . '</b></a><div id="' . $id . '" class="ukryj" style="display: none;">' . $match[2] . '</div>';
}

$str
= preg_replace_callback("#\[ukryj=\"?(.*?)\"?\](.*?)\[/ukryj]#si", 'ukryj', $str);
?>


A dokładniej jak mam tego użyć
Cytat
[ukryj="link"]rozwijana treść[/ukryj]

Czy w jakiś inny sposub
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.