prvky do diskusneho fora

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
mis-co
Začátečník
Začátečník
Registrován: 11. čer 2005

prvky do diskusneho fora

Příspěvek 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.
Lamicz
Začátečník
Začátečník
Uživatelský avatar
Registrován: 30. kvě 2005
Bydliště: In a galaxy far away...
Kontaktovat uživatele:

Příspěvek 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!"); }
}
:: DESKA :: Asus A8V-XE (VIA K8T890) :: CPU :: AMD Athlon 64 3700+ :: VGA :: ATI Asus GF7600 512MB - passive solution :: RAM :: 4x 256MB Samsung :: HDD :: 80GB Maxtor PATA ::
mis-co
Začátečník
Začátečník
Registrován: 11. čer 2005

Příspěvek od mis-co »

diki, ale skor by som potreboval vyriesit to vkladanie pomocou javascriptu...google som pozeral ale nic take som nenasiel...
next_ghost
Začátečník
Začátečník
Registrován: 12. kvě 2005
Bydliště: Chomutov
Kontaktovat uživatele:

Příspěvek 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-)
mis-co
Začátečník
Začátečník
Registrován: 11. čer 2005

Příspěvek 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 :(
Naposledy upravil(a) mis-co dne sob 17. pro 2005, 11:34, celkem upraveno 1 x.
next_ghost
Začátečník
Začátečník
Registrován: 12. kvě 2005
Bydliště: Chomutov
Kontaktovat uživatele:

Příspěvek 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).
mis-co
Začátečník
Začátečník
Registrován: 11. čer 2005

Příspěvek 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...
nowaja
Nováček
Nováček
Registrován: 28. pro 2005
Kontaktovat uživatele:

Příspěvek 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....
Odpovědět

Zpět na „Programování a web“