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 :

Changement de valeur à la soumission d'un formulaire avec submit()


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut Changement de valeur à la soumission d'un formulaire avec submit()
    Bonjour,

    J'ai le code JS suivant:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (recall.value !== 'x') {
    	alert(recall.value);
    	form22.submit();
    }
    A réception j'ai le code php suivant:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		var_dump($_POST['recall']);
    		exit;
    'x' est la première valeur d'option de la liste select avec l'id 'recall'.
    alert() affiche 6 ou une autre valeur.
    Le var_dump du code php me renvoie toujours 'x'.
    Je n'y comprend rien.
    Je précise que tout se passe dans le même document.

    EDIT: J'ai trouvé, c'est la suite du code qui modifie la valeur. Par contre, je ne sais pas comment faire pour exécuter la suite du code après que le code php soit exécuté. Je mets donc cette discussion en attente.

  2. #2
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    Bonjour smccbbm,

    Qu'est-ce que tu entends par exécuter la suite du code ?

    Quand tu « submit » ta page va se rafraichir et le code coter serveur, ici avec le langage PHP a été exécuté.

    Ensuite c'est le code côté client qui s’exécute…

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut


    recall.value !== 'x' 'x' est un "string" pas une variable. recall.value doit contenir un "string" ou une variable ?

    form22.submit(); on ignore tout du contenu de form22. Manifestement, lors de la soumission, la valeur envoyée est différente de celle contenue dans recall.value.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut
    En fait, je crois que je m'y prends mal.
    J'ai une procédure dans un écouteur. Cette procédure doit lire un cookie préalablement enregistré en php. Ce cookie contient un objet qui lui même contient un ou plusieurs objets. Je veux supprimer l'un de ces sous-objets. Comme je maîtrise mieux php que JS, j'ai eu le réflexe de passer par php mais ce n'est pas bon et inutile.
    Ma contrainte est d'enregistrer le cookie sous la même forme qu'en php.
    Après réflexion voici ce que je dois faire dans mon écouteur:
    • lire et décoder le cookie
    • supprimer l'objet à supprimer
    • réenregistrer le cookie sous la même forme qu'en php
    • exécuter la suite du code (exploitation du nouveau cookie)

    Ce qui me pose un problème en JS, c'est la réécriture du cookie sous la même forme qu'en php. Je ne m'en sors pas avec ce que j'ai lu et surtout, je ne suis pas sûr de respecter la forme initiale du cookie comme en php. Ma question devient donc comment écrire correctement mon cookie en respectant le codage et la forme initiale?
    Voici mon code d'écriture du cookie en php:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    setcookie('save', json_encode($cookies), time() + 3600*24*3650);
    Pour info:
    'x' est une valeur. C'est la valeur d'une balise option.
    Chaque sous-objet représente une configuration de formulaire avec les id de balises et leurs valeurs.
    En php et après décodage, l'objet cookie a cette forme:
    Code : 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
    object(stdClass)[12]
      public '4' => 
        object(stdClass)[2]
          public 'recall' => string 'x' (length=1)
          public 'save' => string 'test' (length=4)
          public 'bold' => 
            array (size=2)
              0 => string 'on' (length=2)
              1 => string 'on' (length=2)
          public 'font' => 
            array (size=3)
              0 => string 'Comic' (length=5)
              1 => string 'Times' (length=5)
              2 => string 'Arial' (length=5)
          public 'size' => 
            array (size=3)
              0 => string '15' (length=2)
              1 => string '12' (length=2)
              2 => string '18' (length=2)
          public 'color' => 
            array (size=3)
              0 => string '128, 0, 0' (length=9)
              1 => string '0,0,0' (length=5)
              2 => string '0,0,0' (length=5)
          public 'insField' => 
            array (size=3)
              0 => 
                array (size=1)
                  ...
              1 => 
                object(stdClass)[7]
                  ...
              2 => 
                object(stdClass)[8]
                  ...
          public 'italic' => 
            object(stdClass)[9]
              public '1' => string 'on' (length=2)
          public 'insSep' => 
            object(stdClass)[11]
              public '2' => 
                object(stdClass)[10]
                  ...
      public '6' => 
        object(stdClass)[13]
          public 'recall' => string 'x' (length=1)
          public 'save' => string 'JS2' (length=3)
          public 'font' => 
            array (size=1)
              0 => string 'Arial' (length=5)
          public 'size' => 
            array (size=1)
              0 => string '12' (length=2)
          public 'color' => 
            array (size=1)
              0 => string '0,0,0' (length=5)
          public 'insField' => 
            array (size=1)
              0 => 
                array (size=1)
                  ...
    Voici un exemple de formulaire (rempli à la demande par l'utilisateur avec des champs texte et des sélections d'éléments de base de données)
    Nom : Capture.PNG
Affichages : 156
Taille : 18,9 Ko

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Je ne connais pas suffisamment le PHP pour vous aider.



    Je ne connais rien aux cookies (j'utilise - compatible avec IE8 et plus - le sessionStorage, ou le localStorage).


    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 576
    Points : 803
    Points
    803
    Par défaut
    Merci beaucoup Daniel. J'apprécie votre aide précieuse.
    Je connais déjà la plupart des liens que vous m'indiquez mais les sessions ne correspondent pas à mon besoin. Je vais me concentrer sur la gestion des cookies en javascript. En cas de besoin, je créerai une nouvelle discussion.

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

Discussions similaires

  1. [Formulaire] Checkbox changement des valeurs
    Par Samuel78 dans le forum IHM
    Réponses: 6
    Dernier message: 23/04/2007, 12h04
  2. Changement de valeur dans différents formulaires
    Par dragonfly dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/05/2006, 10h21
  3. Réponses: 1
    Dernier message: 29/09/2005, 11h10
  4. [JSP]Problème de double soumission d'un formulaire
    Par jgfa9 dans le forum Servlets/JSP
    Réponses: 31
    Dernier message: 24/08/2005, 11h54
  5. Intercepter le changement de valeur d'une variable
    Par Captain_JS dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/01/2005, 08h04

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