1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    décembre 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2008
    Messages : 235
    Points : 145
    Points
    145

    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 : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : septembre 2008
    Messages : 226
    Points : 327
    Points
    327

    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…
    Vous cherchez à apprendre les bases en langage « C », « Go », « Rust », « PHP 7 », « Java 9 » ou « Python 3 » ? N'hésitez pas à me contacter par MP.

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    février 2009
    Messages
    5 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

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

    Informations forums :
    Inscription : février 2009
    Messages : 5 729
    Points : 21 094
    Points
    21 094
    Billets dans le blog
    39

    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



    Nota bene : si vous devez être compatible avec les navigateurs obsolètes (IE8 et plus), vous devez convertir les codes ES2015 en ES5 avec Babel.

    FAQ JS Tutoriels JS

    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 habitué
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    décembre 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2008
    Messages : 235
    Points : 145
    Points
    145

    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 : 23
Taille : 18,9 Ko

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    février 2009
    Messages
    5 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

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

    Informations forums :
    Inscription : février 2009
    Messages : 5 729
    Points : 21 094
    Points
    21 094
    Billets dans le blog
    39

    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



    Nota bene : si vous devez être compatible avec les navigateurs obsolètes (IE8 et plus), vous devez convertir les codes ES2015 en ES5 avec Babel.

    FAQ JS Tutoriels JS

    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 habitué
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    décembre 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2008
    Messages : 235
    Points : 145
    Points
    145

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