Soumettre deux formes avec un seul bouton
J'ai HTML deux formes, l'une qui envoie des données à l'entrée d'une base de données à l'aide de PHP, l'autre dirige l'utilisateur vers une page de paiement paypal, mon problème est que l'utilisateur aurait à présenter à la fois des formes qui, bien sûr, je ne veux pas qu'ils ont à faire. Est-il de toute façon à utiliser un bouton envoyer pour les deux formes?
(Javascript est la bienvenue)
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en mesure de le faire avec JavaScript:
Si vos formulaires Id:
Si vos formulaires n'ont pas d'Id, mais ont des noms:
La soumission d'un formulaire causes de la page pour naviguer loin de la
action
de la forme. Donc, vous ne pouvez pas vous présenter à la fois des formes traditionnelles. Si vous essayez de le faire avec JavaScript en appelantform.submit()
sur chaque formulaire dans la succession, chaque demande sera annulée, sauf pour la dernière présentation. Donc, vous avez besoin de soumettre la première forme de manière asynchrone via JavaScript:submit()
sur l'autre présentera le premier que dans Firefox).Vous pouvez soumettre le premier formulaire avec AJAX, sinon la soumission de l'un va empêcher les autres d'être soumis.
En Chrome et IE9 (et je devine que tous les autres navigateurs trop), seule la dernière sera de générer une prise connect, le premier sera mis au rebut. (Le navigateur détecte ce que les deux demandes sont envoyées dans un délai d'un JavaScript "timeslice" dans votre code ci-dessus, et annule toutes les mais la dernière demande.)
Si à la place vous avez un événement de rappel de la deuxième présentation (mais avant la réception d'une réponse), la prise de la première demande sera annulée. C'est certainement rien de recommander que le serveur, dans ce cas, pourrait bien avoir manipulé votre première demande, mais vous ne saurez jamais sûr.
Je vous recommande d'utiliser/de générer une demande unique qui vous pouvez effectuer des transactions côté serveur.
Actuellement choisi la meilleure réponse est trop floue pour être fiable.
Cela se sent à moi comme un relativement sûr de le faire:
(Javascript: utilisation de jQuery pour écrire qu'il est plus simple)
Post la première forme sans changer de page, attendez la fin du processus. Puis après la seconde forme.
Le deuxième poste est à changer de page, mais vous pourriez voulez avoir un code similaire également à la deuxième forme, l'obtention d'un deuxième objet reporté (post_form2?).
Je n'ai pas testé le code, mais.
e1.preventDefault();
ete1.stopPropagation();
. je suppose que l'un d'eux aurait suffit. Pour info je n'ai pas downvote. C'est juste que j'ai atteint cette page, et avoir quelques doutes.preventDefault
est bien sûr nécessaire, afin de prévenir le défaut envoyer et à prendre possession de ce qui va se passer avec cet événement.stopPropagation
au lieu de cela dépend du cas d'utilisation, dans le cas où l'événement ne doit pas être pris à partir d'éléments extérieurs (ne me souviens pas, mais probablement l'an dernier je l'ai mis -lors de l'encodage à la volée juste pour être sûr ). Et ne vous inquiétez pas, je ne pense pas que vous downvoted (est encore un mystère pourquoi je l'ai eu), mais merci de le précisersi vous souhaitez soumettre deux formes avec un seul bouton vous avez besoin pour ce faire:
1 - utiliser setTimeout()
2 - permettre à montrer pop up
javascript n'est pas de présenter deux formes dans le même temps. nous présenter deux formes avec un seul bouton pas en même temps mais après secounds.
edit: lorsque nous utilisons ce code, le navigateur ne permet pas de pop up.
si vous utilisez ce code pour votre logiciel comme moi venez de définir navigateur pour afficher les pop-up, mais si vous l'utilisez dans la conception de site, le navigateur est un obstacle et le code ne s'exécute pas.
Si vous avez régulièrement bouton "soumettre", vous pouvez ajouter un événement onclick qui ne le suivent: