Bouton radio et variable de session?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Bouton radio et variable de session?

par zouetchou » 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'.

par Ryle » 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 :)

par sadeq » 14 sept. 2006, 16:49

Selon Ryle, si tu utilises location il faut passer des paramètres en GET par un ?

par zouetchou » 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.

par sadeq » 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.

par Ryle » 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);...)

par zouetchou » 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é.

par sadeq » 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

par zouetchou » 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.

par sadeq » 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";
}

Bouton radio et variable de session?

par zouetchou » 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.