![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 4.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Czy jest możliwy podwójny submit - taki, że po kliknięciu na submit formularz poprzez AJAX dodaje zamówienie do bazy mysql, po czym skrypt dodawania (PHP) metodą PDO::lastinsertid zwraca wartość ID, a następnie AJAX czy JQuery umieszcza ją w jednym z ukrytych pól input submitowanego formularza? Inaczej - przed przejściem submitowanego formularza do płatności (skrypt zewnętrzny) muszę utworzyć w bazie rekord nowego zamówienia i zwrócić do formularza (tego submitowanego) ID nowego rekordu, aby płatność była kojarzona z danym zamówieniem. Dziękuję za pomoc |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak, ale akcje formularza musisz przekazać do javascript oraz zablokować domyślną akcję wysłania formularza.
Schemat postępowania 1. Na zdarzenie onclick przycisku submit wywołujesz funkcję, która: 2. Zablokuje wysłanie formularza 3. Wyśle zapytanie postem do skryptu php 4. Skrypt php dodaje co ma dodać, zwraca (jako json, albo zwykłe echo id ostatniego rekordu) 5. Funkcja w js, ta, która wysyłała formularz odbiera odpowiedź skryptu php 6. Jeśli jest błędna to nie wysyła formularza dalej 7. Jeśli jest poprawna, to wysyła zapytanie postem dalej, do tego skryptu płatności Do formularzy możesz użyć pluginu, np: jQuery Form Plugin Ten post edytował vokiel 18.10.2009, 15:47:19 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 4.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Hej, dzięki za pomoc. Po wysłaniu formularza poprzez ajaxSubmit i otrzymaniu ID (jako response), nie potrafię ponownie submitować formularza. Użyłem jquery form plugin. Aby form wysłał się ajaxem, należy zwrócić false. Po tym już z formularzem nic nie mogę zrobić. Proszę o pomoc. Dzięki
Ten post edytował vefeer 18.10.2009, 18:05:08 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Masz tam taką opcję success, do której możesz przypisać funkcję, która wykona się po poprawnym odebraniu danych. Możesz wtedy dodać nowe pole, i zrobić ponownie ajaxSubmit tyle, że na inny adres. Bądź już normalnie zezwolić na wysłanie formularza.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 4.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ale w jaki sposób mogę ponownie zezwolić na wysyłanie formularza w funkcji success? Próbuję to zrobić, ale niestety się nie udaje.
Ten post edytował vefeer 18.10.2009, 19:56:51 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
A tak nie zadziała? Teraz tylko inne parametry dla ajaxSubmit i myślę, że powinno zadziałać. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 4.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ale ja muszę tam przejść do tych płatności, a ajaxem zrobię to w tle...
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
A jak zrobisz return true; przy pierwszym ajaxSubmit?
Albo po prostu:
Tylko nie wiem, czy się nie wyśle ten formularz zanim ajax nie zwróci wyników. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:28 |