Bouton radio et variable de session?

Eléphant du PHP | 84 Messages

14 sept. 2006, 15:02

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.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 sept. 2006, 15:32

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";
}
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 84 Messages

14 sept. 2006, 15:46

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.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 sept. 2006, 16:11

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()" />
formulaire est le nom de ton FORM

Le programme php qui recevra le "submit" est celui que j'ai donné précédemment
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 84 Messages

14 sept. 2006, 16:18

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é.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 sept. 2006, 16:32

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);...)

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 sept. 2006, 16:33

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.
Modifié en dernier par sadeq le 14 sept. 2006, 16:47, modifié 1 fois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 84 Messages

14 sept. 2006, 16:41

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.

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 sept. 2006, 16:49

Selon Ryle, si tu utilises location il faut passer des paramètres en GET par un ?
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 sept. 2006, 17:13

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 :)

Eléphant du PHP | 84 Messages

15 sept. 2006, 09:13

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'.