"NAME=MONNOM" Dans fonction JAVASCRIPT

Fermé
Jul - 29 mai 2003 à 12:43
 Jul - 29 mai 2003 à 23:08
Salut !

J'ai un petit soucis au niveau de mon javascript, en fait, jai fait une fonction pour rendre visible un champs de texte si l'on coche une case, ou par defaut c'est un menu deroulant...

Le probleme c que soit l'un soit l'autre doivent avoir le meme nom > NAME= var1 , pour que mon passage de variable fonctionne !

Le probleme, est que mon jaavscript marche mais que le passage de la variable ne fonctionne pas, car il prend en compte le dernier nom de variable present dans ma page HTML donc en loccurence mon champs de texte, donc quelques ois mon choix (menu deroulant apr ex) cela ne passe pas les bonnes valeurs...

Y aurais t'il un moyen de donner un nom de champs de texte ou de menu deroulant selon qu'il soit visible ou non ?

Voila ma foncion :

<script>

//Affichage des champs de textes fonts
//il ya des element dans le body, onLoad="checkform()",
//document.form1.checkbox1.checked >> form1=nom de formulaire, checkbox1=nom de mon checkbox
//+ ca avant le champs de text : <div align="center" id="textfont1" style="visibility:hidden"> textfont1 est le nom donnée pr le reperer dans le form
var iscomplete=false

function checkform() {
iscomplete=false
for (i=0;i<=document.form1.elements.length-1;i++) {
if (document.form1.checkbox1.checked) {iscomplete=true}
}

if (!iscomplete) {
if (document.all) {
textfont1.style.visibility="HIDDEN"
textfont1_1.style.visibility="VISIBLE"
document.form1.var1.name="var1";
iscomplete=false
}

}
if (iscomplete) {
//document.write("Test");
if (document.all) {
textfont1.style.visibility="VISIBLE"
textfont1_1.style.visibility="HIDDEN"
iscomplete=true
}
}

var timer= setTimeout("checkform()",200)
}

function oksubmit() {
return iscomplete
}

</script>



et mon HTML :

<form name="form1" action="test2.php" method="post">
<p>

</p>
<table width="35%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
<td> <div id="textfont1_1" style="visibility:VISIBLE">
<select name="var1">
<option value="Arial" selected> Arial
<option value="Arial Black"> Arial Black
<option value="Arial Narrow"> Arial Narrow
<option value="Book Antiqua"> Book Antiqua
<option value="Bookman Old Style"> Bookman Old Style
<option value="Broadway"> Broadway
<option value="Century Gothic"> Century Gothic
<option value="Century Schoolbook"> Century Schoolbook
<option value="Comic Sans MS"> Comic Sans MS
<option value="Courier New"> Courier New
<option value="Garamond"> Garamond
<option value="Georgia"> Georgia
<option value="Haettenschweiler"> Haettenschweiler
<option value="Impact"> Impact
<option value="Miriam"> Miriam
<option value="Monotype Corsiva"> Monotype Corsiva
<option value="Monotype Sorts"> Monotype Sorts
<option value="MS Outlook"> MS Outlook
<option value="MT Extra"> MT Extra
<option value="Rod"> Rod
<option value="ssDigits"> ssDigits
<option value="Symbol"> Symbol
<option value="Tahoma"> Tahoma
<option value="Times New Roman"> Times New Roman
<option value="Trebuchet MS"> Trebuchet MS
<option value="Verdana"> Verdana
<option value="Webdings"> Webdings
<option value="Wingdings"> Wingdings
</select>
</div></td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox1" value="checkbox"></td>
<td>
<div id="textfont1" style="visibility:hidden">
<input type="text" name="var1">
</div></td>
</tr>
<tr>

<td> </td>
<td>
Cochez la case pour mettre
une font personel</td>
</tr>
</table>
<p><BR>
<input name="submitbut" type="submit" value=" Envoyer ">
</p>
</form>



MERCI POUR VOTRE AIDE, car la je ne sais plus quoi faire !
A voir également:

4 réponses

PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
29 mai 2003 à 19:49
Bsr Jul,

Désolé mais je n'ai rien compris à tes explications !

As-tu relu ton message avant de l'envoyer ?

Reformule ta question STP

@+
PhP



[[  The Truth is Out There   ]]
0
Alors desolé pr ces explications foireuses mais c pas simple a expliquer !

pour etre bref, jai fait une fonction qui me permet d'afficher soit un champs de text sois un menu deroulant dans un formulaire.
Cela grace à une case a coché qui est sois coché ou non.

Voila, pr la premiere partie ! donc ca ca marche, mais le probleme c que le nom que jutilise pour ces deux champs doit etre le meme parceque ca va me servir de variable dans une page php (du style echo $var1)

<input type="text" name="var1">

<select name="var1">

Et voila, le soucis c que comme jai donnée le meme nom au deux, quand jessaie de recuperer mon nom de variable VAR1 dans ma page PhP, il me garde automatiquement ce quil ya dans mon champ de text, alors qu'il est caché et que jutilise le menu deroulant...

Tout ca parceque il faut que le nom NAME=VAR1 sois affecter à un seul champs de formulaire à un moment donnée et non au deux.

ouf... tu vois c cho a expliquer, jespere avoir été plus clair...

Donc je me demandais si il etait possible d'affecter un nom de champt de texte ou pour un menu deroulant (NAME = VAR1) en fonction de clui qui est visible.

Un truc du genre :
textfont1_1.style.visibility="VISIBLE" // ca c ce quil y a dans mon javascript
textfont1_1.name="VAR1" // mais je sais tres bien que ca ne marche pas...

ou alors si tu as une autre soluce...
0
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
29 mai 2003 à 22:22
Back again ...

Ha oui mais non il faut 2 variables d'autant plus que tu as déjà tout ce qu'il faut : il te suffit de remplacer

<input type="text" name="var1">

par

<input type="text" name="var2">

par ex

Puis d'ajouter dans ta page php directement ou via un include :

<?php

// Par défaut $var1 contient la valeur sélectionnée dans la
// liste déroulante

// Si la case a été cochée alors on prend la valeur du champ texte
if (isset($checkbox1)) $var1 = $var2;
?>

Ainsi tu peux continuer à utiliser $var1 partout dans ton code PHP

@+
PhP

[[  The Truth is Out There   ]]
0
yes !

c good, ca marche super !

Merci mister PhP, tu es mon sauveur ! Je bloquais sur ca depuis un moment !

En tout cas encore merci du fond du coeur !
0