Stránka 1 z 1

prvky do diskusneho fora

Napsal: pát 16. pro 2005, 18:05
od mis-co
Robim diskusne forum, a potreboval by som tam pridat prvky na zvyraznenie textu(nieco ako je na tejto stranke)...rozmyslal som asi takto: Umiestnil by som tam tlacitka ktore by pomocou javascriptu vlozili znaky ako , a pod. a prostrednicvom php by som tieto znacky previedol na html tagy <b> </b>a pod...viem ze by sa to dalo spravit aj tak ze by som vypisoval hned html znacky, ale retazec ide cez funkciu strip_tags() a navyse ak by som v tejto funkcii povolil niektore html tagy, tak by mi k nim mohli pridat style a to uz nechcem...
Mohli by ste mi poradit ako mam cez javascript vkladat znacky + php funkciu ktora prejde retazec a ak najde tak ho zameni za <b>
este ma napadlo ci by toto netrvalo dlho(mam na mysli prechadzanie retazca)...tak pripadne ine riesenie.

Napsal: pát 16. pro 2005, 18:29
od Lamicz
Tak tady ti davam jako priklad moji fci - vstup jsou dve pole - v $replace jsou znaky, ktery se maji hledat a v $replaced za co je nahradit. Pole musi stejny pocet znaku a $what je nazev promenne ve ktere je text, z ktere se hleda. Vystup fce je v promenne $what ;)

Kód: Vybrat vše

function string_replace($what, $replace, $replaced){

  $array_replace = sizeof($replace);
  $array_replaced = sizeof($replaced);

  if($array_replace == $array_replaced){
    
    $end = $array_replace - 1;
  
    for($i = 0; $i < $array_replace; $i++){  
     
      $var = strpos($what, $replace[$i]);
  
        if($var !== false){
          $processed = str_replace($replace[$i], $replaced[$i], $what);
          $what = $processed;
            if($i == $end){
              return $what;
            } 
        }else{
          if($i == $end){
          return $what;
        } 
      }
    }
  }else{ die("Function string_replace: Arrays must be same lenght!"); }
}

Napsal: pát 16. pro 2005, 18:53
od mis-co
diki, ale skor by som potreboval vyriesit to vkladanie pomocou javascriptu...google som pozeral ale nic take som nenasiel...

Napsal: pát 16. pro 2005, 21:50
od next_ghost
Vkládání HTML tagů JavaScriptem? No fujtajbl. Na to se používá PHP a regulární výrazy, třeba eregi_replace(). Příklad nahrazení [link]url[/link] za <a href="url">url</a>:

Kód: Vybrat vše

$vzkaz = eregi_replace('\[link\]([^\[]+)\[/link\]', '<a href="\\1" target="_blank">\\1</a>', $vzkaz);
Jednoznačná výhoda - když zmršíš syntaxi tagu, nevylezou z toho kraviny, ale zmršenej tag se vypíše jako čistej text 8-)

Napsal: sob 17. pro 2005, 10:26
od mis-co
Jak fakt uz neviem ako vam to mam vysvetlit...chcem urobit presne to ako je na tomto fore...sekcia Odoslat odpoved, mate tam predmet a pod tym su tlacitka B, i, u, quote, code, list, list=, img, url, blur atd. a pod tym mate pole pre text...ked kliknem na to tlacitko tak mi vlozi do textoveho pole znacky (nie html tagy), neposiela poziavku na server az ste si nevsimli!!! potrebujem javascript...ale bohuzial nakolko javascript neviem, tak som odkazany si najst script, ktory uuz hladam asi 2 dni a nikde som ho nenasiel :(

Napsal: sob 17. pro 2005, 11:33
od next_ghost
Jo tohle, to se dělá buď přes zápis na konec textu (prasácky text = text + "blablabla", za text se dosadí název prvku, třeba document.forms[0].txtarea1.value), nebo přepsat označenej text (označený indexama selectionStart a selectionEnd, když neni nic označený, jenom se to vloží na pozici kurzoru).

Napsal: sob 17. pro 2005, 11:34
od mis-co
Lamicz píše:Tak tady ti davam jako priklad moji fci - vstup jsou dve pole - v $replace jsou znaky, ktery se maji hledat a v $replaced za co je nahradit. Pole musi stejny pocet znaku a $what je nazev promenne ve ktere je text, z ktere se hleda. Vystup fce je v promenne $what ;)

Kód: Vybrat vše

function string_replace($what, $replace, $replaced){

  $array_replace = sizeof($replace);
  $array_replaced = sizeof($replaced);

  if($array_replace == $array_replaced){
    
    $end = $array_replace - 1;
  
    for($i = 0; $i < $array_replace; $i++){  
     
      $var = strpos($what, $replace[$i]);
  
        if($var !== false){
          $processed = str_replace($replace[$i], $replaced[$i], $what);
          $what = $processed;
            if($i == $end){
              return $what;
            } 
        }else{
          if($i == $end){
          return $what;
        } 
      }
    }
  }else{ die("Function string_replace: Arrays must be same lenght!"); }
}
Mohol by si trochu blizsie popisat tu funkciu, lebo nechapem ako vlastne funguje...

Napsal: čtv 29. pro 2005, 00:51
od nowaja
<a href=# onclick="javascript:document.prispevek.text.value=
document.prispevek.text.value+' text_co_chces_vlozit '">_tlacitko_</a>
.
.
.
Kde prispevek je nazev formulare ve kterym se nachazi vstupni pole a text nazev toho pole....