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

Langage PHP Discussion :

[PHP-JS] 1 seul form mais 2 submit avec 2 cibles differente


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Par défaut [PHP-JS] 1 seul form mais 2 submit avec 2 cibles differente
    Bonjour,

    J'ai un formulaire avec 2 boutons submit. J'aimerais que l'un envoie le script sur la meme page et que l'autre l'envoie sur une autre page. Mais je ne sais pas si c'est possible. J'aimerais faire cela sans utiliser Javascript.
    Mes pages sont en PHP donc possibilité d'utiliser une astuce de ce côté là mais je pense que c'est plutôt du HTML non ?

    Merci de votre aide.

    [Edit: a déplacer vers PHP]

  2. #2
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    si tu ne veux pas passer en javascript, c'est possible en PHP :

    - tu attribues deux valeurs différentes à chacun de tes deux boutons de validation
    - tu valides ton formulaire qui te renvoie sur une page (pourquoi pas la page en cours)(champ action de ton form)
    - dès que tu arrive sur la page de validation, tu fait un test pour savoir sur quel bouton tu as cliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (isset($_GET['bouton_val_1'])) {
       ...
    } else if (isset($_GET['bouton_val_2'])) {
       ...
    }
    Et en fonction du cas, tu te rediriges vers la bonne page (fonction header de PHP), en pensant au passage à transmettre les variables de ton formulaire.
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Par défaut
    Ok merci pour ton aide. J'avais déja pensé à une approche du genre mais mon problème est d'envoyer les données comme si elles venaient d'un formulaire. Je pense qu'il y a une méthode avec header mais je n'ai pas trouvé dans la doc PHP comment envoyer des données avec cette fonction.

    Si qqn a des infos là-dessus ?

    PS: Le sujet peut-être déplacé dans PHP.

  4. #4
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    si tu es en get, rien de plus facile, il suffit de rajouter tes paramètres à l'URL...
    mon.url?param1=aaa&param_2=bbb&...&param_n=nnn
    par contre, en POST, je sèche ...

    Mais le plus simple serait sans doute un p'tit javascript sur le onsubmit, qui te modifierait à la volée la cible de ton formulaire...
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    Impossible à faire en HTML (ton PHP devient du HTML "à la fin") car un <form> va vers un seul endroit et tous les submit mènent vers cet endroit !
    Avec javascript il y a moyen de faire quelque chose mais comme tu n'en veux pas, il est possible de faire quelque chose de ce genre :
    La page A doit pouvoir être redirigée vers A ou B (elle même ou un autre d'après ton ennoncé) grace à deux bouton respectif a et b en fait A redirige vers C, C vérifie si c'est le bouton a ou b qui a été cliqué puis redirige soit vers A ou B (redirection transparente pour l'utilisateur grâce au header)

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Par défaut
    Ok, j'ai bien compris le concept, mais je n'ai pas trouvé comment faire la redirection transparente (avec envoie des données) avec le header. J'ai cherché dans la doc PHP mais je n'ai pas trouvé.
    Si qqn a cette info, merci de la poster (ou un lien).

    Merci de votre aide.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    oui, c'est possible, il faut encoder un header http avec tes variables $_POST puis tu envoyes le header vers la page voulue (A ou B)
    Je te laisse choisir ta solution préférée ici

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Par défaut
    J'ai en effet cherché et je n'ai trouvé que des réponses au niveau des sockets. Plusieurs personnes parlent de l'envoie de donnée POST avec header mais ce n'est que rumeur et je n'ai rien trouvé de concret, puisque la solution finale utilise toujours les sockets.
    Je vais me diriger vers la solution des sockets mais si qqn connait le moyen avec header, merci de le partager.

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 9
    Par défaut
    ben c'est ça la solution du header, en fait tu envois le header avec contenu post directement sur ton port 80 (celui de ton serveur web) à l'aide d'une socket

  10. #10
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    sinon tu peux faire un include, sa te permettra d'inclure ta page et de garder tes variables.

  11. #11
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    2 solutions:
    A) En javascript (mais je vais pas plus loin car tu me dis que tu ne veux pas)
    B) Tu envoie tes données vers 1 page fixe pour les 2 boutons. Cependant, cette page PHP récupère la valeur des bouton afin de savoir lequel des 2 à été appuyé et ensuite tu fait un include() pour charger la bonne page selon le bouton appuyé.

  12. #12
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Par défaut
    En effet, je n'avais pas pensé à la technique du include ! C'est, je pense, la solution la plus simple et la moins lourde.

    Merci votre aide.

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

Discussions similaires

  1. [SQL] Requete SQL mal formée : mais je vois pas pourquoi !
    Par Thomus38 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/06/2006, 18h03
  2. [PHP-JS] Connaître le nom du bouton submit cliqué
    Par fabrice1596 dans le forum Langage
    Réponses: 6
    Dernier message: 08/03/2006, 08h59
  3. [form] document.monForm.submit() !?!
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/11/2005, 01h13
  4. Acesskey dynamique dans un form à plusieurs boutons submit ?
    Par boteha dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/09/2005, 17h54
  5. Réponses: 1
    Dernier message: 15/08/2005, 19h38

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