Autor Zpráva
Boban117
Profil
Zdravím, mám problém se zobrazováním náhrady textu za smajlíky. zkoušel jsem to podle hodně návodů a pořád ne a ne se mi to zadařit. budu rád pokud mi pomůžete upravit zdroják...moc díky

-tady je kód na nahrazení smajlíků (s tímhle mám problém)
<?
$replace = array(); //nahrazování smailíků
$replace['*1*']='<img src="../images/smile/1.gif">';

function replace_smile ($body)
{
global $replace; // zpřístupnit pole ve funkci
reset($replace); // nastavit na začátek
while(list($key,$val) = each($replace))
$body = str_replace($key,$val,$prispevky_radky); // procházet pole a nahrazovat zadané výskyty smajlíků
return $prispevky_radky;
}
?>


-při kliknutí na smajlíka se správně zobrazí *1* v textarea
<!--směrování odkazů smajlíků -->
<script type="text/javascript">
function Smile(what)
{
document.forms.comment.vzkaz.focus();
document.forms.comment.vzkaz.value=
document.forms.comment.vzkaz.value+what;
}
</script>

<form action="" method="post" name="comment">
<textarea name="vzkaz" id="vzkaz" class="input" cols="40" rows="6"><? if($odeslano == "ne") {echo($_POST['vzkaz']);} ?></textarea>

<img onclick="Smile('*1*')" src="../images/smile/1.gif">
</form>


-v tomhle odstavci se zobrazuje vzkaz, včetně smajlíků (ovšem pouze jako *1*, nikoliv jako smajlík)
<div class="zprava">
<? echo $prispevky_radky[vzkaz] ?>
</div>


pokud mi to pomůžete opravit budu velmi rád děkuji
peta
Profil
Boban117
- odkaz na stranku? nic
- php kod v js foru? bezcenne
Jak ti pomoci, kdyz nic nedas?
Jak mam asi podle tebe prelozit PHP kod? to si musim registrovat domenu? Nahrat server? Tolik kvuli tobe? A to jeste vim, co s tim. Ale spousta lidi, co by ti mohlo poradit to nevi.

Protoze jsi teda nic podstatne nedal, zeptam se jinak. Co ti pise JS konzola?

bavime se stale o JS, jediny JS tam je:
function Smile(what)
{
document.forms.comment.vzkaz.focus();
document.forms.comment.vzkaz.value=
document.forms.comment.vzkaz.value+what;
}
Tohle by melo udelat to, ze do textarea s name=vzkaz prida na konec smajlik. Pokud to tohle dela, pak je JS kod spravny a funkcni. Tim je problem tykajici se JS vyresen.
Neni zac dekovat, opravdu.



k tomu ostatnimu:
$replace['*1*']='<img src="../images/smile/1.gif">';
cz.php.net/error_reporting
jakou chybu hlasi PHP?
predpokladam, ze neco ve smyslu jako, tento index nelze pro pole $replace vytvorit, protoze povolene nazvy musi zacinat pismenem a mohou obsahovat znaky az09_ . O hvezdicce tam rec neni
cz.php.net/str_replace
mas tam more prikladu
Boban117
Profil
http://bodaw.cz/kniha/navstevni-kniha.php - tady je ten odkaz

chybu to žádnou nehlásí, po kliknutí na smajla se kód toho smajla zapíše do textarea, ale v diskuzi se potom nepřevede zpátky do grafické podoby
peta
Profil
Na prevod tam zadny JS nemas, proto se to neprevede?
Harwen
Profil
Osobně se mi osvědčilo vyměňovat znaky smajlíků za odkaz k nim už při ukládání příspěvku do db pomocí str_replace().
Nevýhoda je, že když změním cestu ke smajlíkům tak se ti ve starých příspěvcích nebudou zobrazovat :-)
Garen
Profil *
no sice je tohle tema stare ale ja mam stejny problem...

zdrojak:
<?php
  function prevedsmajliky($text) {
    $s1='smile/1.gif';
    $s2='smile/2.gif';
    $s3='smile/3.gif';
    $s4='smile/4.gif';
    $s5='smile/5.gif';
    $s6='smile/6.gif';
    $s7='smile/7.gif';
    $s8='smile/8.gif';
    $cry='smile/cry.gif';
    $arr='smile/arr.gif';
    $oo='smile/oo.gif';
    $idea='smile/idea.gif';
    $vykricnik='smile/vykricnik.gif';
    $otaznik='smile/otaznik.gif';
    $lol='smile/lol.gif';
    $evil='smile/evil.gif';
    $red='smile/redface.gif';
    $rolleyes='smile/rolleyes.gif';
    $twisted='smile/twisted.gif';
    $xd='smile/xd.gif';
    
    $smileys = Array(
      ":-)" => $s1, ":)" => $s1,
      ":-D" => $s2, ":D" => $s2,
      ";-)" => $s3, "';)" => $s3,
      ";-D" => $s3, "';D" => $s3,
      "8-)" => $s4, "8)" => $s4,
      "*cool*" => $s4,
      ":-(" => $s5, ":(" => $s5,
      ":-/" => $s6, ":/" => $s6,
      ":-o" => $s7, ":o" => $s7,
      ":-O" => $s7, ":O" => $s7,
      ":-|" => $s8, ":|" => $s8,
      "x-D" => $xd, "xD" => $xd,
      "O_o" => $oo, "Oo" => $oo,
      ":'-(" => $cry,
      ":'(" => $cry,
      "*cry*" => $cry,
      "->" => $arr,
      "*idea*" => $idea,
      "*!*" => $vykricnik,
      "*?*" => $otaznik,
      "*lol*" => $lol,
      "]:-(" => $evil,
      "*evil*" => $evil,
      "*red*" => $red,
      "*rolleyes*" => $rolleyes,
      "]:->" => $twisted,
      "*twisted*" => $twisted
    );
    $smileysrc = "./";
    while (list($smtext, $smimg) = each ($smileys)) {
      $img = '<img class="smile" src="'.$smileysrc.$smimg.'" alt="'.$smtext.'" />';
      $text = Str_Replace($smtext, $img, $text);
    }
    return $text;
  }
  
  $data1=mysql_query("SELECT jmeno,datum,web,email,text FROM diskuse ORDER BY datum ASC");
  while ($data=mysql_fetch_array($data1)) {
    echo("
      <div class='celek'>
        <table class='ls'>
          <tr>
            <th></th><th>".$data['jmeno']."</td>
          </tr><tr>
            <td>Přidáno:</td><td>".$data['datum']."</td>
          </tr>
    ");
    if(!empty($data['web'])) { echo ("
          <tr>
            <td>Web:</td><td><a href='".$data['web']."' target='_blank'>".$data['web']."</a></td>
          </tr>
    "); }
    if(!empty($data['email'])) { echo ("
          <tr>
            <td>E-mail:</td><td>".$data['email']."</td>
          </tr>
    "); }
    prevedsmajliky($data['text']);
    echo ("
        </table>
        <div class='ps'>
          <div class='b'>Zpráva:</div>
          <div class='zprava'>".$text."</div>
        </div>
      </div>
    ");
  }
        ?>


no zadnej error no nehlasi akorat je promnena $text prázdná !!!
fakt nevim cim to je (jinak tohle opravdu neni JS xD)
Garen
Profil *
a jestě mam verzi na netu:
s prevodem smajlu
bez prevodu
diky za radu fakt si s tim nevim rady =(
Garen
Profil *
a jestě mam verzi na netu:
s prevodem smajlu
bez prevodu
diky za radu fakt si s tim nevim rady =(

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: