text ingeven via javascript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jvuz

jvuz

27/07/2006 15:45:00
Quote Anchor link
Hallo ik heb een form die via php/mysql naar een db gestuurd wordt. In het veld event (textarea) zou ik graag willen dat het mogelijk wordt om via een knop (door erop te klikken, eigenlijk zoals de ubb code op een forum) hetvolgende in te voeren:
<br />
<b></b>
Ik denk dat dat via Javascript zal moeten gebeuren. Of wat denken jullie?
 
PHP hulp

PHP hulp

17/11/2024 15:45:48
 
Joren de Wit

Joren de Wit

27/07/2006 16:17:00
Quote Anchor link
Javascript biedt inderdaad een oplossing:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script language="Javascript">
function addText(element, text)
{
    element.value += text;
}
</script>

<!-- Voorbeeldje -->

<form action="" method="post" name="formulier">
<input type="text" name="veld" />
</form>

<a href="javascript:addText(document.formulier.veld,'<br />')">Add newline (< br />)</a>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Jvuz

jvuz

28/07/2006 08:52:00
Quote Anchor link
Het vak waar het zou moeten toegevoegd worden is een textarea. Is dat een probleem?
 
Jelmer -

Jelmer -

28/07/2006 08:56:00
Quote Anchor link
nope
 
Jvuz

jvuz

28/07/2006 08:59:00
Quote Anchor link
Het lukt me niet echt.

Dit is de lijn waar het zou moeten gebeuren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<textarea id="event"  name="event" rows="5" cols="40"  style="margin-left:10px;"></textarea>
 
Joren de Wit

Joren de Wit

28/07/2006 11:54:00
Quote Anchor link
Je hebt je formulier wel een naam gegeven?

Het element waar je tekst in wilt laten plaatsen (in dit geval je tekstarea) wordt in javascript aangeduid in de vorm: document.<formuliernaam>.<elementnaam>

Belangrijk is dus dat je je formulier ook een naam geeft, zie ook mijn voorbeeld.

In jouw geval zal het dus worden:
addText(document.<naam van je formulier>.event, '<tekst die je wilt toevoegen>')
 
Jvuz

jvuz

28/07/2006 13:12:00
Quote Anchor link
Gaat het om name of id?
 
Jvuz

jvuz

28/07/2006 13:15:00
Quote Anchor link
En <br /> moet ik misschien opgeven als &#60;br &#47;&#62;
 
Jan Koehoorn

Jan Koehoorn

28/07/2006 13:16:00
Quote Anchor link
JavaScript benadert DOM elementen via het id. De beste methode is document.getElementById. Als je het ook voor oudere browsers wilt laten werken moet je een generieke functie schrijven. Ik gebruik altijd die van Peter Paul Koch:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function getObj (name)
{
    if (document.getElementById) {
        this.obj = document.getElementById(name);
        this.style = document.getElementById(name).style;
    }
    else if (document.all) {
        this.obj = document.all[name];
        this.style = document.all[name].style;
    }
    else if (document.layers) {
        this.obj = document.layers[name];
        this.style = document.layers[name];
    }
}
 
Joren de Wit

Joren de Wit

28/07/2006 13:21:00
Quote Anchor link
@jvuz: Wat Jan geeft is inderdaad de beste methode, maar via de naam van een element kan het ook.

Kijk nog eens goed naar het voorbeeld dat ik gaf, daarin worden de twee vragen die je als laatste stelt al beantwoord...
 
Jvuz

jvuz

28/07/2006 13:25:00
Quote Anchor link
Deze code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<script language="Javascript">
function addText(element, text)
{
    element.value += text;
}
</script>
voeg ik toe tussen de head tags? En de andere code tussen de form tags, of enkel de a href?
 
Jan Koehoorn

Jan Koehoorn

28/07/2006 13:40:00
Quote Anchor link
Hier heb je een voorbeeldscript. Getest en werkend:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">
        window.onload = init;
        
        function init () {
            var _newline = document.getElementById ('newline');
            _newline.onclick = set_newline;
        }
        
        function set_newline () {
            var _tekst = document.getElementById ('tekst');
            _tekst.value += " stukje erbij...";
        }
    </script>
</head>

<body>
    <form method="post">
        <p>
            <textarea id="tekst"></textarea>
        </p>
        <p>
            <input id="newline" type="button">
        </p>
    </form>
</body>
</html>
 
Jvuz

jvuz

28/07/2006 13:45:00
Quote Anchor link
Prachtig, het werkt, nu kan ik toevoegen wat ik wil! Nogmaals bedankt!
 
Jan Koehoorn

Jan Koehoorn

28/07/2006 13:48:00
Quote Anchor link
Graag gedaan :-)
 
Jvuz

jvuz

28/07/2006 13:56:00
Quote Anchor link
Als ik dit doe werkt het niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script type="text/javascript">
        window.onload = init;
        
        function init () {
            var _newline = document.getElementById ('newline');
            _newline.onclick = set_newline;
            var _bold = document.getElementById ('bold');
            _bold.onclick = set_bold;
        }
        
        function set_newline () {
            var _tekst = document.getElementById ('event');
            _tekst.value += " <br />";
        }
        function set bold () {
            var_tekst = document.getElementById ('event');
            _tekst.value += "<b><\/b>";
    </script>

Moet ik de nieuwe variabele anders declareren?
 
Jan Koehoorn

Jan Koehoorn

28/07/2006 14:00:00
Quote Anchor link
Er hoort een streepje in je functienaam set bold en die staat er niet.
 
Jvuz

jvuz

28/07/2006 14:04:00
Quote Anchor link
Inderdaad, newline werkt terug, maar de bold functie wil nog niet werken. Ik heb er een \ toegevoegd, omdat ik een foutboodschap kreeg ivm de validatie. Zit daar het probleem?

Dit zijn de buttons:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<input id="newline" type="button" value="Nieuwe regel" />
<input id="bold" type="button" value="Vetgedrukt" />
Gewijzigd op 01/01/1970 01:00:00 door jvuz
 
Joren de Wit

Joren de Wit

28/07/2006 14:11:00
Quote Anchor link
Ikzelf ben een voorstander van deze code, aangezien de javascript functie die gebruikt wordt nog iets algemener is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">        
        function addText (target, value) {
            _target = document.getElementById (target);
            _target.value += value;
        }
    </script>
</head>

<body>
    <form method="post">
        <p>
            <textarea id="tekst"></textarea>
        </p>
        <p>
            <input id="newline" value="newline" onClick="addText('tekst','<br />')" type="button">
            <input id="bold" value="bold" onClick="addText('tekst','<b></b>')" type="button">
        </p>
    </form>
</body>
</html>


Getest en werkend. Bij elke button geef je een onClick waarde mee waarin je addText aanroept. Op zijn beurt verlangt addText weer een target en een waarde...

Edit:
typo
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Jan Koehoorn

Jan Koehoorn

28/07/2006 14:18:00
Quote Anchor link
@Blanche: die is inderdaad nog iets mooier, als je meer buttons nodig hebt.

Het wordt nog weer mooier als je het toekennen van de functies aan de buttons uit de HTML haalt en in de JavaScript sectie doet. Op die manier kun je namelijk je HTML(PHP), CSS en JS helemaal gescheiden houden.
 
Joren de Wit

Joren de Wit

28/07/2006 14:28:00
Quote Anchor link
Hehe klopt, we komen er wel uiteindelijk :P
 
Jvuz

jvuz

28/07/2006 14:35:00
Quote Anchor link
Jullie zijn geweldig! Ik moet wel zeggen dat ik nog niet zover ben, betreffende de laatste comment van Jan. Ik ben al blij dat ik dit heb. Nogmaals bedankt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.