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 :

Submit un formulaire, via un bouton


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut Submit un formulaire, via un bouton
    Bonjour à tous !

    J'ai un petit soucis avec mon formulaire, j'ai un beau formulaire qui fonctionne convenablement ajout, modification et suppression de ligne dans une base SQL tout est parfait. Lorsque je click sur mon button qui est de type "submit" je suis bien redirigé vers ma page php que je souhaite avec la méthode POST.

    Lorsque j'arrive sur ma page php j'utilise forcement les isset($_POST) avec des conditions, tout cela fonctionne bien.

    Le problème est le suivant : Je remplace un bouton de type "submit" par "button" afin de vérifier les champ de texte que j'ai remplie, j'applique une petite touche de java script avec onClick qui me redirige vers une fonction qui fait les vérifications.

    A la fin des vérifications j'utilise la fonction submit() et la problème page blanche plus rien ne s'affiche.
    Je sais que le problème vient des isset qui ne reconnaissent pas les $_POST. Mais je ne comprend pas pourquoi ???

    Voici le javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script language='JavaScript'>   
     
      function verif(formulaire)
      {  
        // Verification du champ Groupe
        if(formulaire.groupe_new.value.length > 30)
    	{
          alert('Groupe trop long (ne doit pas dépasser 30 caractères) !');
    	  formulaire.groupe_new.focus();
          return;
    	}
        else
          formulaire.submit();
      }
    Voici le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form action='modif.php' method='post' id='id_form' />
     
    Groupe : 
    <input type='text' name='groupe_new' id='id_group' tabindex='10' size='20' value='' /> 
     
    <input type='button' name='ajout' value='Ajouter' onClick='verif(this.form)' />
    <input type='submit' name='annuler' value='Annuler' />
    et la page modif.php :

    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
     
    /*-----------------------------------------------------------------------------*/
    /*                                   Cas ajout                                 */
    /*-----------------------------------------------------------------------------*/
    if(isset($_POST['ajout'])) 
    {
      $groupe = $_POST['groupe_new'];
     
      $insert = "INSERT INTO Table (Groupe) VALUES ('$groupe_new')";
      $requete = mssql_query($insert);
     
      // Actualisation de la page site.php
      echo "<script language='JavaScript'>
    		  document.location.href='site.php';
            </script>";
    }
    Merci de bien vouloir m'éclairer

  2. #2
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Tu ne nous as peut-être pas tout montré,
    mais d'après le formulaire,
    lorsque tu arrives sur modif.php,
    il n'y a aucune raison pour que que tu aies une valeur dans
    $_POST['groupe'], $_POST['extension'] ou $_POST['critère'].
    La seule valeur que tu peux récupérer est $_POST['groupe_new'].

    Fred

  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut
    Oui pardon j'ai modifié le code je ne voulais pas trop le surcharger.

  4. #4
    Membre très actif Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Par défaut
    Essai de laisser tes bouttons submit comme avant, comme quand ça fonctionnait bien.
    Par contre, ajoute un onsubmit="return verif()" dans la balise form.
    Là selon la valeur de retour booléenne, la form sera automatiquement soumise (ou non)

    edit: ajout du return, car il faut ce return

  5. #5
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par metagoto Voir le message
    Essai de laisser tes bouttons submit comme avant, comme quand ça fonctionnait bien.
    Par contre, ajoute un onsubmit="return verif()" dans la balise form.
    Là selon la valeur de retour booléenne, la form sera automatiquement soumise (ou non)

    edit: ajout du return, car il faut ce return
    +1

    La première méthode était (presque) la bonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function verif(formulaire)
      {  
        // Verification du champ Groupe
        if(formulaire.elements['groupe_new'].value.length > 30)
    	{
          alert('Groupe trop long (ne doit pas dépasser 30 caractères) !');
    	  formulaire.elements['groupe_new'].focus();
          return false;
    	}
        else
          return true;
      }
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form action='modif.php' method='post' id='id_form' onsubmit="return verif(this);"/>
      
    Groupe : 
    <input type='text' name='groupe_new' id='id_group' tabindex='10' size='20' value='' /> 
      
    <input type='submit' name='ajout' value='Ajouter' />
    <input type='reset' name='annuler' value='Annuler' />
    De plus, ton bouton "Annuler" envoyait le <form> sans aucune verif, du coup

    A+

  6. #6
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut
    Merci beaucoup du coup de pouce et surtout de l'affichage du code corrigé !

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

Discussions similaires

  1. Submit un formulaire, via un bouton
    Par Tony36 dans le forum Langage
    Réponses: 3
    Dernier message: 23/06/2009, 22h56
  2. Réponses: 4
    Dernier message: 22/11/2006, 18h51
  3. Réponses: 2
    Dernier message: 09/11/2006, 22h42
  4. Ajouter des champs à un formulaire via un bouton
    Par Stass dans le forum Langage
    Réponses: 11
    Dernier message: 08/09/2006, 17h02
  5. Ajouter des champs a un formulaire via un bouton
    Par Stass dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/09/2006, 13h59

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