IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Récupérer variables post submit


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut Récupérer variables post submit
    Bonjour Toutes et Tous,

    Toujours aussi peu à l'aise en ce langage, ça patine grave et ça fait déjà un certain temps

    En gros mon but est la concrétisation d'un formulaire un peu spécial, qui doit faire apparaître un champ texte SEULEMENT si le futur expéditeur clique sur la radio-button "Téléphone" ou "indifférent".

    Tout est OK côté PHP, mais s'il se produit un submit en cours de saisie, c'est là que la difficulté arrive.

    La mémorisation du radio-button est perdue
    (En PHP j'y arrive, mais avec un décalage = celui de la compil du server)

    Bref, faut passer par une méthode plus "directe" : celle du JS.

    Voici le focus sur le principe en question, qui bien entendu ne peut aucunement récupérer mes variables, et si vous pouviez m'aider un peu, ce serait super, merci d'avance

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <!DOCTYPE html>
    <html lang="fr">
    	<head>
    		<meta charset="UTF-8">
            <title>Gestion de variables/tags via radio-buttons checked</title>
            <script>
                    
                            function click_radio_email(id)
                            {               
                                    var RB = email;
                            }               
     
     
                            function click_radio_phone(id)
                            {
                                    var RB = phone;                                 
                            }               
                            
     
                            function click_radio_indif(id)
                            {
                                    var RB = indif;                                 
                            }                                       
                                                    
                            
                            // LA DIFFICULTÉ ARRIVE AU SUBMIT CAR FAUT MÉMORISER LE CHECKED 
                            function gere_show_hide_inputPHONE(monObjet)
                            {
                                    // Retrouver le RB checked grâce à son tag    
                                    if (RB == 'email')
                                    {
                                            alert('email');
                                    }       
     
                                    if (RB == 'phone')
                                    {
                                            alert('phone');
                                    }       
                                    
                                    if (RB == 'indif')
                                    {
                                            alert('indif');
                                    }                       
                            }
                            
                    </script>
        </head>
        <body>
     
    		E-mail
    		<input type="radio" id="choix_email" name="choix_radio" value="email" onclick="javascript:click_radio_email('texte');"><br />
    		Phone
    		<input type="radio" class="bouton" id="bouton_texte" name="choix_radio" value="telephone" onclick="javascript:click_radio_phone('texte');"><br />
    		Indif 
    		<input type="radio" id="choix_indif" name="choix_radio" value="Indifféremment" onclick="javascript:click_radio_indif('texte');"><br />
     
    		<form> 
    			<button type="submit" onclick="gere_show_hide_inputPHONE()">Trouver le RB checked</button>
    		</form>
     
    	</body>
    </html>

    J'ajoute que je ne souhaite pas passer par une méthode de cookies ou de détergent.

    DS7

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    s'en regarder plus avant tu as un problème de scope
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function click_radio_email(id)
    {
      var RB = email;
    }
    La variable RB est définie dans ta fonction et visible uniquement dans ta fonction.

    La variable RB que tu as un peu plus loin dans ton code est une autre variable, non définie d'ailleurs.

    Regarde ce qui se passe dans la console, F12.

  3. #3
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut
    NoSmoking

    Hé oui tout ça je sais, crois bien que j'ai passé assez de temps à rechercher partout, mais ce n'est pas ma façon de raisonner (autres langages...).

    Je connais aussi le F12 et les conseils inhérents de Mozilla ; mais suis pas plus avancé

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    En regardant plus avant je ne saisie pas trop ce que tu essaies de faire !

    Il nous manque peut-être des informations complémentaires sur le HTML.

    Si le but au clic sur un « radio-button » est d'afficher un champs particulier cela se fait simplement même en pur CSS.

    Lors de la soumission, seuls les éléments affichés non disabled sont transmis.

    Si tu ne souhaites pas utiliser les cookies, Ajax ou autre localStorage il faut savoir que la page étant rechargé le JavaScript ne « survit » pas à cela et est également rechargé. Tu as toujours la possibilité, côté serveur, de récupérer le « radio-button » et de la cocher par défaut.

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Beaucoup de problèmes dans ton code: html pas logique et script dont on comprend difficilement le but;

    Essaie quelque chose comme ça, teste et dis si ça t'avance:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form id="f"> 
    	E-mail
    	<input type="radio" id="choix_email" name="choix_radio" value="email" /><br />
    	Phone
    	<input type="radio" id="bouton_texte" name="choix_radio" value="telephone" /><br />
    	Indif 
    	<input type="radio" id="choix_indif" name="choix_radio" value="Indifféremment" /><br />
     
    	<input type="hidden" id="cache" name="cache" />
     
    	<input type="submit" value="Trouver le RB checked" />
    </form>


    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const cache=document.querySelector("#cache");     
    document.querySelector("#f").addEventListener("click",(e)=>{
    	if(e.target.type=="radio" && e.target.value!="email"){
    		cache.type="text";
    		cache.value=e.target.value;
    	}
    	else{
    		cache.type="hidden";
    		cache.value="";
    	}
    })

  6. #6
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut
    NoSmoking, tu m'as donné des éléments qui me seront toujours utiles par la suite.

    Javatwister, tu n'as pas compris le but de mon code ?

    Oui mais alors dis-moi ; pourquoi as-tu résolu mon problème directement ?

    J'avais en effet déjà pensé et ajouté un input hidden afin de ruser au plus direct. Mais j'étais bien loin de pondre une méthode comme la tienne !

    Je vais tenter petit à petit d'en comprendre et admirer chaque morceau.

    Merci amis programmeurs (et cadors) d'avoir eu la gentillesse de passer un peu de temps pour moi

    DS7

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer variable POST dans le src d'une iframe
    Par claude77 dans le forum Langage
    Réponses: 13
    Dernier message: 04/03/2014, 16h53
  2. Récupérer variable POST sous Flex
    Par MrJack14 dans le forum Flex
    Réponses: 3
    Dernier message: 18/02/2010, 16h50
  3. Réponses: 6
    Dernier message: 15/04/2009, 14h20
  4. [AJAX] récupérer variable post
    Par hokidoki dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/03/2009, 16h07
  5. Réponses: 10
    Dernier message: 20/06/2007, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo