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

HTML Discussion :

Formulaire avec 2 validations possibles


Sujet :

HTML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 35
    Points
    35
    Par défaut Formulaire avec 2 validations possibles
    Bonjour,

    J'ai eu beau chercher, je n'ai pas réussi à trouver de réponse à mon problème (ou alors je ne sais pas chercher, c'est possible...).

    Sur ma première page, j'ai un formulaire qui contient une liste de produits. J'en sélectionne autant que je veux et j'ai alors deux possibilités:
    1/ Bouton "Modifier" et j'envoi, par la méthode post, les produits sélectionnés à la page modifier.php
    2/ Bouton "Supprimer" et j'envoi les données par la méthode post à la page supprimer.php
    La seule astuce que j'ai trouvé pour avoir 2 options d'envoi, c'est celle-là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form method="post" action="rechercherproduit.php" name="form_affichage">
    ...
    <input type="submit" name="modifier" value="Modifier" />
    <input type="submit" name="supprimer" value="Supprimer" />
    qui renvoi donc sur la page rechercherproduit.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if ($_POST['modifier']!="") {
    $id_prod=$_POST['produits'];
        header("Location: modifierproduit.php");
    }
    else {
    $id_prod=$_POST['produits'];
        header("Location: conf_supp_prod.php");
    }
    Mais a ma connaissance (très limitée je le reconnais), on ne peux passer de données par la méthode post sans formulaire...
    Comment puis-je donc faire pour récupérer $id_prod sur ma page modifier.php par la méthode post ?

    Merci beaucoup pour vos indications.

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Salut !

    le mieux serait de faire directement le traitement au lieu de faire une redirection
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    +1

    mais si tu veux absolument avoir deux pages différentes, tu as deux solutions :

    primo, avec les sessions : tu enregistres id_prod dans une variable de session, comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['id_prod']=$_POST['produits'];
    et les variables de session restent même en changeant de page (c'est d'ailleurs leur réel intérêt), et à mon avis la meilleure solution (non, la meilleure solution c'est de faire le traitement dans la même page, mais bon)

    secundo, avec un lien par GET, comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Location: modifierproduit.php?id_prod=$_POST['produits']
    bon il faut mettre les guillemets au bon endroit, c'est juste le principe. honnêtement, j'ai déjà fait cela avec des liens, mais jamais avec un header, donc je ne suis pas sûr que cela fonctionne. tu appelles dans ta page modifierproduit par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_prod = $_GET['id_prod']

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Une autre idée :

    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
     
    <script language="javascript">
    function Modifier()
       {
       document.form_affichage.action = "Modifier.php";
       document.form_affichage.submit();
       }
     
    function Supprimer()
       {
       document.form_affichage.action = "Supprimer.php";
       document.form_affichage.submit();
       }
    </script>
    .....
    <form method="post" action="" name="form_affichage">
    ...
    <input type="button" onclick="Modifier()" name="modifier" value="Modifier" />
    <input type="button" onclick="Supprimer()" name="supprimer" value="Supprimer" />

  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    @pc75 : et si JS est desactivé : c'est mort ^^
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 35
    Points
    35
    Par défaut
    Merci à tous !
    Je vais essayer la méthode à pc75. C'est du javascript mais ça pose pas de problème, c'est uniquement un formulaire pour la partie administration...
    Pour le passage par la méthode Get, j'avais déjà essayé, mais j'ai un autre problème qui se pose.
    Comme je peux passer plusieurs produits,
    $_POST[produits] peut être un tableau ou non.
    En plus, je fais déjà appel à ma page supprimer.php depuis une autre page, et supprimer.php récupère déjà les données par la méthode POST. J'avais essayé aussi de mettre un $_REQUEST dans supprimer.php, mais ça a pas l'air de bien gérer le get et post avec soit un tableau soit une seule valeur...
    C'est pour ça que le javascript me semble plus approprié. J'essai ce soir pour voir.

  7. #7
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Citation Envoyé par Swoög
    @pc75 : et si JS est desactivé : c'est mort ^^
    Je ne suis pas un pro du javascript, mais on peut détecter si le javascript est désactivé et dans ce cas, prévenir le visiteur que l'appli nécessite son activation non ?

  8. #8
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut
    Salut,
    Pour moi, la meilleure solution serait de faire un include conditionnel, ça ressemble beaucoup à ta solution mais tu n'auras pas de problème pour récupérer les données du formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (isset($_POST['modifier'])) {
        include ("modifierproduit.php");
    }
    else {
        include ("conf_supp_prod.php");
    }
    Tu devrais utiliser la fonction isset pour tester tes boutons, sinon tu aura des warnings...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 35
    Points
    35
    Par défaut
    Bein oui MicroPuce, bien sûr.
    C'était d'ailleurs évident.
    Comment n'y ai-je pas pensé plus tôt ???

    En tout cas merci beaucoup pour toutes vos idées. Tout seul je n'arrivais pas à décoller. Tout à l'air de fonctionner désormais. Plus qu'a tester.
    En tout cas mon problème est résolu.

    Vous êtes tous merveilleux !!

    Par contre microPuce, isset ne marche pas sur ovh apparemment. C'est assez bizarre en fait, j'ai jamais vu ce problème, mais il suffit de remplacer par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_POST['modifier']!="")
    Ce qui me donne le même résultat.

    Et pas de panique, j'ai bien fait les tests nécessaires sur les boutons. Mais je n'allais quand même pas recopier tout le code ici, si ?
    (y en pas loin de 400 lignes quand même...). J'ai préféré allez à l'essentiel !

  10. #10
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut
    Salut,
    Concernant le isset, c'est effectivement très bizarre, à ma connaissance, c'est la seule fonction PHP qui te permet de tester l'existance d'une variable car si tu essaies de tester le contenu d'une variable qui n'existe pas, t'auras droit à une warning (sauf config du error_reporting). Peut-être as tu fais une erreur de frappe (ça m'est souvent arrivé et avec le isset, tu vois pas )
    bonne continuation

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/07/2007, 17h10
  2. [Javascript] Validation formulaire avec ENTREE
    Par titalex dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/06/2006, 16h37
  3. Réponses: 6
    Dernier message: 03/04/2006, 09h42
  4. Pb validation formulaire avec checkbox
    Par wolfe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/12/2005, 08h50
  5. Réponses: 6
    Dernier message: 05/07/2005, 16h33

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