Toon posts:

[js + php] smileycode toevoegen in bericht

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

ik ben vrij nieuw met javascript. Toch ben ik aan het volgende aan het uitdokteren gegaan:

Ik heb een gastenboek gemaakt (origineel hé) en in dit gastenboek kunnen smileys worden opgenomen. Nu heb ik onder de textarea de rij van mogelijke smileys staan. Wanneer je op 1 van deze smileys klikt moet die de code voor deze smiley in het tekstvak zetten.

Hieronder heb ik een stukje uit mijn code tot dusver gekopieerd:

<head>
...
<script language="JavaScript" type="text/javascript">
function emoticon(text) {
text = ' ' + text + ' ';
if (document.post.message.createTextRange && document.post.message.caretPos) {
var caretPos = document.post.message.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
document.post.message.focus();
} else {
document.post.message.value += text;
document.post.message.focus();
}
}
</script>

</head>
....

<tr>
<td width="105" valign="top">Bericht</td>
<td width="200">
<textarea name="field[bericht]" cols="60" rows="15" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);"></textarea>
<?
echo "<table width=\"100%\" border=\"0\">\n\n";
echo "<tr>\n";

$result = mysql_query("SELECT * FROM smilies ORDER BY bestand") or die(mysql_error());
while($field = mysql_fetch_array($result))
{
echo "<td>";
echo "<a href=\"javascript:emoticon('" . $field["code"] . "')\">[img]\"smilies/"[/img]</a>";
echo "</td>\n";
}

echo "</tr>\n\n";
echo "</table>";
?>
</tr>
.....

De browser laad de pagina zonder fouten, wanneer ik echter op een smiley klik dan doet ie nix maar geeft die deze foutmelding:

document.post.message is not null or not an object

wat ben ik vergeten of wat heb ik niet goed gedaan?

Verwijderd

Je textarea heeft ook niet de naam 'bericht', en staat niet binnen form tags met de naam 'post'.

Verder heb ik nog nooit <js> of <php> tags gezien.

Je hebt ook geen document type definition, en geen character encoding. Ook ontbreken de <title> tags, en je <html> tags.

En nu hou ik op, want het lijkt eerlijk gezegd nergens op.

Verwijderd

Topicstarter
Op woensdag 08 mei 2002 11:07 schreef Cheatah het volgende:
Je textarea heeft ook niet de naam 'bericht', en staat niet binnen form tags met de naam 'post'.

Verder heb ik nog nooit <js> of <php> tags gezien.

Je hebt ook geen document type definition, en geen character encoding. Ook ontbreken de <title> tags, en je <html> tags.

En nu hou ik op, want het lijkt eerlijk gezegd nergens op.
ja dat al die tags er niet zijn snap ik, dit is een stukje uit mijn code geknipt

die <js> en <php> tags zijn voor code coloring zoals op forum 14 (Webscripting) het geval is.

sorry ...

maar ik begrip dat form action anders moet zijn? en dat de naam van textarea niet goed is?

Verwijderd

Topicstarter
mijn form action bestaat nu uit:

<form action="#" method="post" name="post" enctype="multipart/form-data">

wanneer ik nu op een smiley klik krijg ik de volgende foutmelding:

'document.post.message.createTextRange' is not null or not an object

....

Verwijderd

Deze code is 100% gelijk aan die van phpbb dus als je al code aan het rippen bent doe het dan iig goed, want je bent deze functie vergeten te rippen.
code:
1
2
3
4
5
6
7
function storeCaret(textEl)
 {
  if(textEl.createTextRange)
  {
   textEl.caretPos=document.selection.createRange().duplicate();
  }
 }

En heb je nu al de naam van de textarea aangepast naar 'message'? Als je er nu nog niet uitkomt dan zou ik eerst zelf wat javascript gaan leren voordat je hier komt vragen.

Verwijderd

Topicstarter
sorry was inderdaad die functie vergeten

nu werkt ie bedankt....
Pagina: 1