[javascript] checkbox textarea
Maillon
Messages postés
156
Date d'inscription
Statut
Membre
Dernière intervention
-
Maillon Messages postés 156 Date d'inscription Statut Membre Dernière intervention -
Maillon Messages postés 156 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà j'ai un champ texte et une checkbox au dessus :
Un "cat" d'un fichier affiche le contenu de mon champ texte et ensuite je fais dans mon fichier php un :
$rodd=$_POST['rodd'] pour récupérer ma valeur.
En fait j'aimerai que quand on clique sur la checkbox ça me mette dans mon POST tout ce qu'il y a dans mon champ texte.
Est-ce que quelqu'un saurait faire ça ?
Merci.
Cordialement,
Voilà j'ai un champ texte et une checkbox au dessus :
<td><INPUT TYPE=checkbox NAME=RDD CHECKED> Qualification<br><TEXTAREA name="rodd" rows=20 cols=20>$(cat liste | grep RD10D)</TEXTAREA></td>
Un "cat" d'un fichier affiche le contenu de mon champ texte et ensuite je fais dans mon fichier php un :
$rodd=$_POST['rodd'] pour récupérer ma valeur.
En fait j'aimerai que quand on clique sur la checkbox ça me mette dans mon POST tout ce qu'il y a dans mon champ texte.
Est-ce que quelqu'un saurait faire ça ?
Merci.
Cordialement,
A voir également:
- [javascript] checkbox textarea
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Erreur #125 javascript - Forum Mozilla Firefox
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
18 réponses
Bah javascript oui car en fait quand on désactive la checkbox je voudrais que le textarea ce vide et quand on l'active et bien elle soit remplie des infos du "cat".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
<td>
<input type="checkbox" name="RDD" value="case1" CHECKED> Qualification<br>
<textarea name="rodd" rows="20" cols="20">$(cat liste | grep RD10D)</textarea></td>
attention il te manquait la value de la checkbox
et tu recuperes par:
<?php
if(isset($_POST['case1']) && $_POST['case1'] =="case1"){
// si la case est cochée:
$rodd=$_POST['rodd']; //tu recupères la valeur qui est dans le textarea
}else{
$rodd = ""; //sinon vide
}
<input type="checkbox" name="RDD" value="case1" CHECKED> Qualification<br>
<textarea name="rodd" rows="20" cols="20">$(cat liste | grep RD10D)</textarea></td>
attention il te manquait la value de la checkbox
et tu recuperes par:
<?php
if(isset($_POST['case1']) && $_POST['case1'] =="case1"){
// si la case est cochée:
$rodd=$_POST['rodd']; //tu recupères la valeur qui est dans le textarea
}else{
$rodd = ""; //sinon vide
}
salut l'ami....
alors sans passez par javascript ya moyen....
sur ta page php il te sufiit de mettre un if
on prend le cas ou ta chekbox a une value =1 (dans mon exemple on l'appellera checkbox et texta pour le textarea)
donc si c'est cochez tu enverras 1 sinon rien donc sur ta page php tu met :
<?php
$rodd=$_POST['chekbox'];
if ($rodd=='1')
{ $rodd=$_POST['texta'];}
?>
bon en relisant bien les post j'ai vu que tu voulais que la text area ce vide...
bon la par contre le javascript vas etre obligatoire...
il faut crée une fonction (ici vidtext) qui vide ton texarea
bon on donne une id au textarea (ici texta) et a la checkbox (ici check)en on fait ....(entre 2 balise script bien sur....)
function vidtext ()
if (document.getElementById("chek").checked==false)
{document.getElementById("texta").innerHTML="";
}
aprés si tu veux faire "disparaitre" le texarea plutot que de le vider ça donne
function vidtext ()
if (document.getElementById("chek").checked==false)
{document.getElementById("texta").style.display="none";
}
else
{document.getElementById("texta").style.display="block";
}
ensuite dans ta balise <input type='checkbox' value='1' onclick='vidtext()' />
voila , je suis pas sur que ça repond exactement a ta demande mais bon.... si tu a besoin d'autre chose...n'hesite pas !
alors sans passez par javascript ya moyen....
sur ta page php il te sufiit de mettre un if
on prend le cas ou ta chekbox a une value =1 (dans mon exemple on l'appellera checkbox et texta pour le textarea)
donc si c'est cochez tu enverras 1 sinon rien donc sur ta page php tu met :
<?php
$rodd=$_POST['chekbox'];
if ($rodd=='1')
{ $rodd=$_POST['texta'];}
?>
bon en relisant bien les post j'ai vu que tu voulais que la text area ce vide...
bon la par contre le javascript vas etre obligatoire...
il faut crée une fonction (ici vidtext) qui vide ton texarea
bon on donne une id au textarea (ici texta) et a la checkbox (ici check)en on fait ....(entre 2 balise script bien sur....)
function vidtext ()
if (document.getElementById("chek").checked==false)
{document.getElementById("texta").innerHTML="";
}
aprés si tu veux faire "disparaitre" le texarea plutot que de le vider ça donne
function vidtext ()
if (document.getElementById("chek").checked==false)
{document.getElementById("texta").style.display="none";
}
else
{document.getElementById("texta").style.display="block";
}
ensuite dans ta balise <input type='checkbox' value='1' onclick='vidtext()' />
voila , je suis pas sur que ça repond exactement a ta demande mais bon.... si tu a besoin d'autre chose...n'hesite pas !
Merci à toi vincent ! :-)
Je vais regarder ça et si j'ai besoin je reviendrais :-)
Merci.
Cordialement,
Je vais regarder ça et si j'ai besoin je reviendrais :-)
Merci.
Cordialement,
Bah en fait j'ai mis ce que tu as mis et ça me fait planter mon navigateur.
J'ai mis dans mon head :
Peut-être que ça vient du fait qu'il y a beaucoup de ligne dans mon fichier que je "cat" non ?
Merci.
Cordialement,
J'ai mis dans mon head :
<script> function vidtext () if (document.getElementById("chrodp").checked==false) { document.getElementById("rodp").innerHTML=""; } </script> <td><INPUT TYPE=checkbox NAME="chrodp" CHECKED value="1" onclick="vidtext()"> Liste<br><TEXTAREA name="rodp" rows=20 cols=20>$(cat liste | grep ROD110P)</TEXTAREA></td>
Peut-être que ça vient du fait qu'il y a beaucoup de ligne dans mon fichier que je "cat" non ?
Merci.
Cordialement,
document.getElementById("rodp").innerHTML="";
innerHTML est utiliser pour ecrire dans un div
pour ecrire dans un input il faut utiliser .value
innerHTML est utiliser pour ecrire dans un div
pour ecrire dans un input il faut utiliser .value
document.getElementById("rodp").value="";
Ca marche toujours pas et ça me fait encore planter mon navigateur.
Voici mon code :
Voici mon code :
#!/bin/bash echo "Content-type: text/html" echo sudo /usr/bin/refreshlist.sh 2>&1 cat <<EOT <HTML> <HEAD> <TITLE>Interface</TITLE> <script> function vidtext () if (document.getElementById("chrodp").checked==false) { document.getElementById("rodp").value=""; } </script> </HEAD> <BODY BGCOLOR="#EEEEEE"> <H1>Interface </H1> <FORM ACTION=../patch.php METHOD=POST> <table valign=top bgcolor="#FFFFFF" align=center cellspacing=5 cellpadding=5 border=0> <tr><td align=right>Utilisateur: <INPUT TYPE=radio NAME=user VALUE=user1><br><INPUT TYPE=radio NAME=user VALUE=user2></td><td>user1<br>user2</td></tr> <tr valign=top><td colspan=2><table border=0 cellspacing=0><tr BGCOLOR="#DDDDDD"><td align=center colspan=3>Liste</td></tr><tr BGCOLOR="#DDDDDD"> <td><INPUT TYPE=checkbox NAME="chrodp" CHECKED value="1" onclick="vidtext()"> Liste1<br><TEXTAREA name="rodp" rows=20 cols=20>$(cat liste | grep ROD110P)</TEXTAREA></td> <td><INPUT TYPE=checkbox NAME="chrode" CHECKED> Liste2<br><TEXTAREA name="rode" rows=20 cols=20>$(cat liste | grep ROD110E)</TEXTAREA></td> <td><INPUT TYPE=checkbox NAME="chrodd" CHECKED> Liste3<br><TEXTAREA name="rodd" rows=20 cols=20>$(cat liste | grep ROD110D)</TEXTAREA></td> </tr></table></td></tr> <tr valign=top><td align=center colspan=2><INPUT TYPE=SUBMIT VALUE="Patch!"></td></tr> </table> </FORM> </body> EOT
En fait déjà j'avais oublié les { } dans la fonction :-)
Maintenant j'ai une erreur via firebug quand je décoche la checkbox :
document.getElementById("chrodp") is null
vidtext()patch.cgi (ligne 7)
function onclick(event) { vidtext(); }(click clientX=348, clientY=245)1 (ligne 2)
[Break on this error] if (document.getElementById("chrodp").checked==false)\n
Maintenant j'ai une erreur via firebug quand je décoche la checkbox :
document.getElementById("chrodp") is null
vidtext()patch.cgi (ligne 7)
function onclick(event) { vidtext(); }(click clientX=348, clientY=245)1 (ligne 2)
[Break on this error] if (document.getElementById("chrodp").checked==false)\n
tu uitlises:
document.getElementById(
ça veut dire que tu veux atteindre un objet par son id
ils sont où les id de tes balise <input <textarea ?
alors j'ai commencé à corriger, continue
rajoutes aussi les " " pour la valeur des attributs
et mets les noms des balises html en minuscules exemple:
<input type="text" name="..." id="...." value="..." />
etc...
document.getElementById(
ça veut dire que tu veux atteindre un objet par son id
ils sont où les id de tes balise <input <textarea ?
alors j'ai commencé à corriger, continue
rajoutes aussi les " " pour la valeur des attributs
et mets les noms des balises html en minuscules exemple:
<input type="text" name="..." id="...." value="..." />
etc...
<HTML> <HEAD> <TITLE>Interface</TITLE> <script> function vidtext (){ if (document.getElementById("chrodp").checked==false) { document.getElementById("rodp").value=""; } } </script> </HEAD> <BODY BGCOLOR="#EEEEEE"> <H1>Interface </H1> <FORM ACTION="../patch.php" METHOD="POST"> <table valign=top bgcolor="#FFFFFF" align=center cellspacing=5 cellpadding=5 border=0> <tr><td align=right>Utilisateur: <INPUT TYPE="radio" NAME="user" VALUE="user1"><br> <INPUT TYPE="radio" NAME="user" VALUE="user2"></td><td>user1<br>user2</td></tr> <tr valign="top"><td colspan="2"> <table border=0 cellspacing=0><tr BGCOLOR="#DDDDDD"> <td align="center" colspan="3">Liste</td></tr><tr BGCOLOR="#DDDDDD"> <td><INPUT TYPE="checkbox" NAME="chrodp" id="chrodp" CHECKED value="1" onclick="vidtext()"> Liste1<br><TEXTAREA name="rodp" id="rodp" rows=20 cols=20>$(cat liste | grep ROD110P)</TEXTAREA></td> <td><INPUT TYPE="checkbox" NAME="chrode" CHECKED> Liste2<br><TEXTAREA name="rode" rows=20 cols=20>$(cat liste | grep ROD110E)</TEXTAREA></td> <td><INPUT TYPE="checkbox" NAME="chrodd" CHECKED> Liste3<br><TEXTAREA name="rodd" rows=20 cols=20>$(cat liste | grep ROD110D)</TEXTAREA></td> </tr></table></td></tr> <tr valign="top"><td align="center" colspan="2"><INPUT TYPE="SUBMIT" name=" patch" VALUE="Patch!"></td></tr> </table> </FORM> </body>
Ah oué je viens de comprendre ! :-) merci pour l'explication alain ! :-)
J'aurai encore 2 questions :
- Et en admettant que j'ai plusieurs textarea avec une checkbox associée, comment on peut faire pour utiliser une seul fonction ? (sans doute mettre id dans une variable non ? mais après faudrait faire une boucle ? )
- Comment on peut faire pour quand on recoche la checkbox le contenu revienne ? car j'ai mis ça et ça marche pas :
Erreur :
Merci.
Cordialement,
J'aurai encore 2 questions :
- Et en admettant que j'ai plusieurs textarea avec une checkbox associée, comment on peut faire pour utiliser une seul fonction ? (sans doute mettre id dans une variable non ? mais après faudrait faire une boucle ? )
- Comment on peut faire pour quand on recoche la checkbox le contenu revienne ? car j'ai mis ça et ça marche pas :
function vidtext (){ if (document.getElementById("chrodp").checked==false) { document.getElementById("rodp").value=""; } else { document.getElementById("rodp").value="$(cat liste | grep ROD110P)"; } }
Erreur :
unterminated string literal [Break on this error] document.getElementById("rodp").value="ROD1101\n patch.cgi (ligne 13) vidtext is not defined function onclick(event) { vidtext(); }(click clientX=351, clientY=300)
Merci.
Cordialement,
pour repondre a ta première question, il suffitt de passer les id en arguments à la fonction, et modifier la fonction ainsi:
pour la deuxième question, le javascript s'éxécutant coté client (PC) tu ne peux pas faire de script bash
ou alors
- lors du chargement de la page tu "mémorise" dans une variable javascript le contenu de tes textarea et au check de la case tu le réécrit (un peu lourd !)
ou
- tu passes par de l'AJAX
c'est une fonctionnalité de javascript qui permet d'appeler un script sur le serveur (donc ton script bash cat etc..) et d'écrire la réponse dans la page (sans avoir besoin de la recharger )
<HEAD> <TITLE>Interface</TITLE> <script> function vidtext (id_case,id_textarea){ if (document.getElementById(id_case).checked==false) { document.getElementById(id_textarea).value=""; } } </script> </HEAD> <BODY BGCOLOR="#EEEEEE"> <H1>Interface </H1> <FORM ACTION="../patch.php" METHOD="POST"> <table valign=top bgcolor="#FFFFFF" align=center cellspacing=5 cellpadding=5 border=0> <tr><td align=right>Utilisateur: <INPUT TYPE="radio" NAME="user" VALUE="user1"><br> <INPUT TYPE="radio" NAME="user" VALUE="user2"></td><td>user1<br>user2</td></tr> <tr valign="top"><td colspan="2"> <table border=0 cellspacing=0><tr BGCOLOR="#DDDDDD"> <td align="center" colspan="3">Liste</td></tr><tr BGCOLOR="#DDDDDD"> <td><INPUT TYPE="checkbox" NAME="chrodp" id="chrodp" CHECKED value="1" onclick="vidtext('chrodp','rodp');"> Liste1<br><TEXTAREA name="rodp" id="rodp" rows=20 cols=20>$(cat liste | grep ROD110P)</TEXTAREA></td> <td><INPUT TYPE="checkbox" NAME="chrode" CHECKED onclick="vidtext('chrode','rode');"> Liste2<br><TEXTAREA name="rode" rows=20 cols=20>$(cat liste | grep ROD110E)</TEXTAREA></td> <td><INPUT TYPE="checkbox" NAME="chrodd" CHECKED onclick="vidtext('chrodd','rodd');"> Liste3<br><TEXTAREA name="rodd" rows=20 cols=20>$(cat liste | grep ROD110D)</TEXTAREA></td> </tr></table></td></tr> <tr valign="top"><td align="center" colspan="2"><INPUT TYPE="SUBMIT" name=" patch" VALUE="Patch!"></td></tr> </table> </FORM> </body>
pour la deuxième question, le javascript s'éxécutant coté client (PC) tu ne peux pas faire de script bash
ou alors
- lors du chargement de la page tu "mémorise" dans une variable javascript le contenu de tes textarea et au check de la case tu le réécrit (un peu lourd !)
ou
- tu passes par de l'AJAX
c'est une fonctionnalité de javascript qui permet d'appeler un script sur le serveur (donc ton script bash cat etc..) et d'écrire la réponse dans la page (sans avoir besoin de la recharger )
Merci Alain :-)
Je vais essayer le truc que tu m'a dis et je vais me renseigner sur les 2 choix que tu proposes :-)
Merci.
Cordialement,
Je vais essayer le truc que tu m'a dis et je vais me renseigner sur les 2 choix que tu proposes :-)
Merci.
Cordialement,
tiens une des solutions:
l'autre c'est avec AJAX
<HEAD> <TITLE>Interface</TITLE> <script type="text/javascript"> //variables de memorisation var textarea1; var textarea2; var textarea3; function vidtext (id_case,id_textarea,textarea){ var variable=eval('textarea'+textarea); //creation nom variable en fct du textarea if (document.getElementById(id_case).checked==false){ variable =document.getElementById(id_textarea).value; //on memorise avant d'effacer document.getElementById(id_textarea).value=""; } if (document.getElementById(id_case).checked==true){ document.getElementById(id_textarea).value=variable; } return variable; } </script> </HEAD> <BODY BGCOLOR="#EEEEEE"> <H1>Interface </H1> <FORM ACTION="../patch.php" METHOD="POST"> <table valign=top bgcolor="#FFFFFF" align=center cellspacing=5 cellpadding=5 border=0> <tr><td align=right>Utilisateur: <INPUT TYPE="radio" NAME="user" VALUE="user1"><br> <INPUT TYPE="radio" NAME="user" VALUE="user2"></td><td>user1<br>user2</td></tr> <tr valign="top"><td colspan="2"> <table border=0 cellspacing=0><tr BGCOLOR="#DDDDDD"> <td align="center" colspan="3">Liste</td></tr><tr BGCOLOR="#DDDDDD"> <td><INPUT TYPE="checkbox" NAME="chrodp" id="chrodp" CHECKED value="1" onclick="textarea1=vidtext('chrodp','rodp','1');"> Liste1<br><TEXTAREA name="rodp" id="rodp" rows=20 cols=20>$(cat liste | grep ROD110P)</TEXTAREA></td> <td><INPUT TYPE="checkbox" NAME="chrode" id="chrode" CHECKED onclick="textarea2=vidtext('chrode','rode','2');"> Liste2<br><TEXTAREA name="rode" id="rode" rows=20 cols=20>$(cat liste | grep ROD110E)</TEXTAREA></td> <td><INPUT TYPE="checkbox" NAME="chrodd" id="chrodd" CHECKED onclick="textarea3=vidtext('chrodd','rodd','3');"> Liste3<br><TEXTAREA name="rodd" id="rodd" rows=20 cols=20>$(cat liste | grep ROD110D)</TEXTAREA></td> </tr></table></td></tr> <tr valign="top"><td align="center" colspan="2"><INPUT TYPE="SUBMIT" name=" patch" VALUE="Patch!"></td></tr> </table> </FORM> </body>
l'autre c'est avec AJAX