Page 1 sur 1
Bouton radio et variable de session?
Posté : 14 sept. 2006, 15:02
par zouetchou
Bonjour,
Je voudrais pouvoir modifier une variable de session nommée $_SESSION['test'] en fonction de la valeur que prend le bouton radio nommé test.
Ex: si le bouton radio = oui lorsqu'on clique dessus alors $_SESSION['test'] = 'oui';
Merci.
Posté : 14 sept. 2006, 15:32
par sadeq
En php (d'ailleurs je ne vois pas pourquoi tu postes dans le forum javascript? vu que la session n'est accèssible qu'en mode serveur):
if ($_GET["test"] || $_POST["test"]){
$_SESSION["test"] = "oui";
}
Posté : 14 sept. 2006, 15:46
par zouetchou
Le problème est que je veux qu'un javascript, activé lors du clic sur le bouton radion, redirige vers une page php qui gére les variables de session.
Le bouton 'Submit' du formulaire lui ayant un autre effet.
Posté : 14 sept. 2006, 16:11
par sadeq
Dans ce cas là ton bouton radio peut déclencher un "submit" du formulaire en lui assignant un événement JS :
Code : Tout sélectionner
<input name="test" type="radio" value="oui" onClick="formulaire.submit()" />
Où
formulaire est le nom de ton FORM
Le programme php qui recevra le "submit" est celui que j'ai donné précédemment
Posté : 14 sept. 2006, 16:18
par zouetchou
Le submit est effectué par le bouton standard du formulaire et a pour effet d'enregistrer les valeurs des boutons radio dans une Bdd.
Le fait de cliquer sur un bouton radio permet s'implement de visualiser à l'écran un resultat donné (d'où les variables de session)
On envoie le formulaire via le bouton submit uniquement si le résultat est approuvé.
Posté : 14 sept. 2006, 16:32
par Ryle
Ajoute l'attribut onClick="" sur ton bouton radio, et défini comme action de ce clic ta redirection vers une autre page (document.location = 'ton_autre_page.html') ou bien l'ouverture d'une popup (window.open) ou ce que tu veux en fait (allumeFour();setThermostat(9);...)
Posté : 14 sept. 2006, 16:33
par sadeq
Là je crois que tu te mélanges la notion de submit et de validation logique de ton formulaire.
Tu peux toujours avoir plusieurs submit dans ton formulaire qui effectuent des actions spécifiques il suffit de les programmer ainsi dans ton programme php qui réceptionne le formulaire.
Je m'explique: tu peux envoyer un submit "test" qui ne fait qu'afficher un certain ensemble d'info à l'écran sans effacer le formulaire de départ et ainsi permettre d'enchainer avec un autre submit "valider" qui lui déclenche la validation.
Exemple :
<form name="f">
<p>donnée 1 <input name="donnee1" value="<?php echo $_GET["donnee1"]; ?>" >
<p>donnée 2 <input name="donnee2" value="<?php echo $_GET["donnee2"]; ?>" >
<p>
<p><input type="submit" name="tester" value="Tester" >
<input type="submit" name="valider" value="Valider" >
</form>
<?php
//code php de gestion du formulaire
//si c'est un submit "tester"
if ($_GET["tester"]){
//tester seulement
echo "<p>J'ai testé le formulaire sans le valider!";
}
//si c'est un submit "valider"
if ($_GET["valider"]){
//valider seulement
echo "<p>J'ai validé le formulaire sans le tester!";
}
?>
C'est simplement pour que tu saches que t'as pas besoin d'un formulaire dont les différents submit's envoient chacun vers un programme spécialisé. Mais d'un formulaire qui envoi vers un seule programme qui contient des fonctions spécialisées exécutables par des submit's spécifiques.
C'est la boucle du traitement évenementiel des IHM, selon la méthode FAULLE :
- Ecran = données + actions
Action = traitement + Ecran
Et la boucle est bouclée.
Posté : 14 sept. 2006, 16:41
par zouetchou
J'avais bien compris le principe.
Le problème alors c'est comment savoir (sur la page location) sur quel bouton radio on a cliquer et sa valeur ?
Là je répondais à Ryle.
Posté : 14 sept. 2006, 16:49
par sadeq
Selon Ryle, si tu utilises location il faut passer des paramètres en GET par un ?
Posté : 14 sept. 2006, 17:13
par Ryle
En javascript tu peux utiliser this.value pour connaitre la valeur de l'élément :
Code : Tout sélectionner
<input type="radio" name="toto" value="1" onClick="alert(this.value);" />
Il te suffit donc effectivement d'envoyer ce paramètre en GET comme l'a dit Sadeq, ou de le passer à une fonction

Posté : 15 sept. 2006, 09:13
par zouetchou
Merci,
J'ai résolu mon problème avec
Code : Tout sélectionner
<input type="radio" name="toto" value="1" onClick="javascript:test(this.value, this.name);" />
Ce qui m'a permis de récuperer le nom du bouton radio et ainsi mettre à jour la variable de session du même nom avec la valeur 'this.value'.