60 votes

Soumettre deux formulaires avec un seul bouton

J'ai deux formulaires HTML, l'un qui soumet des données à une base de données en utilisant PHP, l'autre qui dirige l'utilisateur vers une page de paiement paypal. Mon problème est que l'utilisateur devrait soumettre les deux formulaires, ce que je ne veux évidemment pas qu'il ait à faire. Existe-t-il un moyen d'utiliser un bouton d'envoi pour deux formulaires ?

(Javascript est le bienvenu)

-2voto

rezaSefiddashti Points 64

Si vous voulez soumettre deux formulaires avec un seul bouton, vous devez faire ceci :

1- utiliser setTimeout()

2- autoriser le show pop up

<script>
function myFunction() {
setTimeout(function(){ document.getElementById("form1").submit();}, 3000);   
setTimeout(function(){ document.getElementById("form2").submit();}, 6000);   
}
</script>
<form  target="_blank" id="form1">
<input type="text">
<input type="submit">
</form>
<form target="_blank" id="form2">
<input type="text">
<input type="submit">
</form>

Le javascript ne soumet pas deux formulaires en même temps. nous soumettons deux formulaires avec un seul bouton pas en même temps mais après des secousses.

éditer : quand on utilise ce code, le navigateur n'autorise pas les pop up.
si vous utilisez ce code pour votre logiciel comme moi, il suffit de paramétrer le navigateur pour qu'il affiche les pop up mais si vous l'utilisez pour concevoir un site, le navigateur est une barrière et le code ne fonctionne pas.

2 votes

Attendre n'informe pas si la première soumission a réussi ou non (selon le flux de travail, le deuxième formulaire pourrait devoir empêcher la soumission à ce moment-là), et ne donne aucune garantie sur le traitement séquentiel des deux requêtes (par exemple, dois-je stocker la transaction dans la base de données si la transaction PayPal a échoué ?) Jetez un coup d'oeil à la réponse alternative que j'ai écrite ; j'ai essayé de donner plus de contrôle sur le flux de travail et les résultats.

-3voto

endyourif Points 1385

Si vous avez un bouton d'envoi ordinaire, vous pouvez ajouter un événement onclick qui fait ce qui suit :

document.getElementById('otherForm').submit();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X