Page 1 sur 2

mis en evidence apres cochage

Posté : 27 juil. 2005, 10:55
par manu49
bonjour,
pour un formulaire j'ai besoin de pouvoir activer des types textes à la suite d'une sélection d'un type radio par exemple
comment faire pour que cela se fasse sans un rafraichissement obligatoire de la page?
merci

Posté : 27 juil. 2005, 10:56
par ouckileou
en Javascript

événement onClick, qui appelle une petite fonction qui active le champ désiré

(la fonction n'est pas obligatoire mais ça regroupe le traitement)

re

Posté : 27 juil. 2005, 10:58
par manu49
je n'ai jamais fait de javascript tu epux me montrer un exemple stp??
merci

Posté : 27 juil. 2005, 11:03
par Cyrano
Modération : Déplacé vers JavaScript, ne mélangeons pas

Posté : 27 juil. 2005, 11:04
par ouckileou

Code : Tout sélectionner

<html> <head> <script type="text/javascript"> function activer(champ,checkbox) { if (document.getElementById(checkbox).checked == true) document.getElementById(champ).disabled = false; else document.getElementById(champ).disabled = true; } </script> </head> <body> <input type="checkbox" id="checkbox1" onClick="activer('champ1','checkbox1');">Activer le champ texte <br> <input id="champ1" type="texte" disabled> </body> </html>
comme je l'ai dit, la fonction n'est pas obligatoire, mais elle permet de regrouper les actions en passant juste en paramètre les deux valeurs qui changent
c'est bien si tu as plusieurs fois ce genre de manipulation dans ta page ;)

Posté : 27 juil. 2005, 11:06
par mere-teresa

re

Posté : 27 juil. 2005, 11:24
par manu49
merci beaucoup et désolé pour ne pas avoir changer de topic

re

Posté : 27 juil. 2005, 11:59
par manu49
rebonjour,
ca marche mais j'ai soucis
je reste ici parce que ca peut concerner le php
voila le code que j'utilise:
<TD><INPUT TYPE=radio NAME="Admission" VALUE="admissible" CHECKED id="admissible" onClick="desactiver('PreciseAttente','admissible')"/>  <label for="admissible"> admissible</label><br />
   <TD><INPUT TYPE=radio NAME="Admission" VALUE="non admissible" id="non admissible" onClick="desactiver('PreciseAttente','non admissible')"/> <label for="non admissible"> non admissible</label><br />
   <TR><TD><TD><INPUT TYPE=radio NAME="Admission" VALUE="admis" id="admis" onClick="desactiver('PreciseAttente','admis')"/>  <label for="admis"> admis</label><br />
   <TD><INPUT TYPE=radio NAME="Admission" VALUE="non admis" id="non admis" onClick="desactiver('PreciseAttente','non admis')"/>  <label for="non admis"> non admis</label><br />
   <TR><TD><TD><INPUT TYPE=radio NAME="Admission" VALUE="attente" id="attente" onClick="activer('PreciseAttente','attente')"/>  <label for="attente"> attente</label><br />
   
   <TD>precisez  attente:
	<select name="PreciseAttente" id="PreciseAttente" disabled>
			<option value="<?= $val_defaut['PreciseAttente']?>"><?= $val_defaut['PreciseAttente']?></option>
			<option value="une place">une place</option>
			<option value="confirmation">confirmation</option>
	</select>		

mais j'envoie ces informations dasn une base données avec mysql mais quand je veux mettre PreciseAttente dans cette base il me dit que cette variable est indéfinie or elle l'est dasn la base, je l'ai initialisé à zéro, le fait de la mettre inactive n'est il pas à l'origine de ce problème?
merci

Posté : 27 juil. 2005, 12:09
par ouckileou
oui, si tu désactives un champ il n'est pas transmis, donc la variable associée n'est pas définie dans le code

re

Posté : 27 juil. 2005, 12:21
par manu49
mais alors comment puis je m'en sortir,
ca ne me pose pas bcp de problème mais le message s'affiche toujours et c'est génant y 'a t'il une solution?

Posté : 27 juil. 2005, 12:23
par ouckileou
tester si la variable existe, si elle n'existe pas l'itinialiser à vide
=> http://fr2.php.net/isset

re

Posté : 27 juil. 2005, 12:37
par manu49
j'utiliserais defined mais je n'y arrive aps rien ne marche je ne dois pas utiliser les bonnes variables je commence à m'y perdre avec les champs des formulaires et ceux de la base
voila la ou ca pose probleme:
function MAJParcours3 ( $mode, $cava, $connexion)
{
// Préparation des variables, en traitant par addSlashes
// les chaînes de caractères


$nom = addSlashes($cava['nom']);
$prenom = addSlashes($cava['prenom']);
$Admission = addSlashes($cava['Admission']);
$PreciseAttente= addSlashes($cava['PreciseAttente']);

$requete = "UPDATE Formulaire SET nom='$nom' , "
. "Admission='$Admission',"
. "PreciseAttente='$PreciseAttente'"
. "WHERE nom = '$nom' AND prenom='$prenom' ";

// Exécution de l'ordre SQL

ExecRequete ($requete, $connexion);
}
?>

je comprend bien ce qui se passe mais comment faire pour envoyer une valeur pour le champ PreciseAttente sasn que cela se voit, j'ai essayer avec un type hidden mais je n'ai pas réussi
en gros normalement je teste si le champ PreciseAttente est défini si il ne l'est je crée un hidden mais je n'y arrive pas je dois me planter quelque part

merci

Posté : 27 juil. 2005, 12:39
par ouckileou
met ton code entre balises PHP stp

ça c'est bien à réception du formulaire on est d'accord ?

c'est quoi $cava ?

édition : en fait poste un nouveau sujet dans le bon forum, c'est plus du javascript ça

re

Posté : 27 juil. 2005, 13:23
par manu49
$cava est ma base de données mais je sais plus comment faire la
oui quand je recois mon formulaire j'appelle une fonction dasn le programme principal et c'est le code qu'il y a dans la fontion
ce que je voudrais c'est que dans le formulaire j'envoie ce champ en étant caché si celui si n'est pas défini,
j'ai essayé un tas de code mais rien ne fonctionne
merci

Posté : 27 juil. 2005, 14:00
par ouckileou
mais là c'est une variable d'un formulaire que tu reçois, donc $_GET['PreciseAttente'] ou $_POST['PreciseAttente'], qu'est-ce que vient faire $cava ? :shock:

pas de nouveau post sinon ? ça permettrait de voir ce que tu fais un peu plus clairement, notamment l'appel de fonction

et puis ça serait plus à sa place