eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwformularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
Ilość wypowiedzi w tym wątku: 12

  • 1. Data: 2011-12-19 14:40:40
    Temat: formularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
    Od: "S" <a...@w...pl>

    Witam

    Mam taki problem. Liczę, że może ktoś z szanownych grupowiczów pomoże.
    Mam formularz który kieruje do platnosci.pl (choć to chyba nie ma znaczenia
    gdzie, chodzi o to, ze na zewnątrz)
    Muszę rzecz jasna wysłać ten formularz pod ten adres ale jednocześnie muszę
    odczytać z niego dane i zapisać do bazy danych.
    Problem w tym, że nie mogę tych dwóch rzeczy zrobić jednocześnie w jednym
    kroku.
    Próbowałem w jquery
    ('#payform').submit(function() {
    $.post("ajax/get_post_data_register_for_pay.php",
    $("#payform").serialize());
    });

    Niestety do pliku php nic "nie leci", formularz jest przekierowany na stronę
    platnosci.pl

    Co dziwne jeśli ten formularz nie wysyłam pod link zewnętrzny tylko dam w
    action aktualny adres powyższy kod działa.
    Nie wiem, może zmęcznie, może się zakręciłem ale nie mogę nic wykombinować
    jak tu po kliknięciu send zapisać sobie w tle dane z formularza do bazy i
    jednocześnie przejść do platnosci.pl

    Będę wdzięczny za pomoc i podpowiedź. Może ktoś już rozwiązywał podobny
    problem

    z góry dziękuję i pozdrawiam
    Sławek


  • 2. Data: 2011-12-19 21:03:44
    Temat: Re: formularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
    Od: HARY <p...@g...com>

    On 19 Gru, 15:40, "S" <a...@w...pl> wrote:
    > Mam formularz który kieruje do platnosci.pl (choć to chyba nie ma znaczenia
    > gdzie, chodzi o to, ze na zewnątrz)
    > Muszę rzecz jasna wysłać ten formularz pod ten adres ale jednocześnie muszę
    > odczytać z niego dane i zapisać do bazy danych.
    > Problem w tym, że nie mogę tych dwóch rzeczy zrobić jednocześnie w jednym
    > kroku.

    A muszą być jednocześnie?

    Jak dla mnie, to prawidłowa kolejność działań powinna być taka:
    wysyłasz dane do siebie, zapisujesz do bazy danych, komunikujesz się z
    platnosci.pl, wyniki transakcji odsyłasz klientowi.

    HARY


  • 3. Data: 2011-12-20 02:07:58
    Temat: Re: formularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
    Od: Exe Very Cute <k...@p...onIet.pl>

    W dniu 2011-12-19 15:40, S pisze:

    > Muszę rzecz jasna wysłać ten formularz pod ten adres ale jednocześnie
    > muszę odczytać z niego dane i zapisać do bazy danych.
    > Problem w tym, że nie mogę tych dwóch rzeczy zrobić jednocześnie w
    > jednym kroku.

    Ja to realizuję tak, że funkcja onSubmit zwraca do formularza False - to
    po pierwsze. Jeżeli tego nie zrobię to zmiana GET/POST spowoduje
    przerwanie żądania XHR. Dopiero po zakończonym żądaniu wysyłam formularz
    usuwając funkcję z onSubmit i robiąc forma.submit();

    Osobnym problemem jest brak obsługi JS po stronie klienta...

    Pozdr
    Exe Very Cute


  • 4. Data: 2011-12-20 08:29:41
    Temat: Re: formularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
    Od: "S" <a...@w...pl>

    >A muszą być jednocześnie?

    >Jak dla mnie, to prawidłowa kolejność działań powinna być taka:
    >wysyłasz dane do siebie, zapisujesz do bazy danych, komunikujesz się z
    >platnosci.pl, wyniki transakcji odsyłasz klientowi.

    Niestety muszą być jednocześnie. Na ogół też tak robię, że wpierw zapisuje
    do bazy a później przechodzę do płatności ale w tym wypadku taki jest wymóg
    projektowy:(

    Sławek


  • 5. Data: 2011-12-20 08:34:43
    Temat: Re: formularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
    Od: "S" <a...@w...pl>

    >Użytkownik "Exe Very Cute" napisał w wiadomości grup
    >dyskusyjnych:jcoqlf$pdn$...@n...dialog.net.pl...

    >W dniu 2011-12-19 15:40, S pisze:

    >Ja to realizuję tak, że funkcja onSubmit zwraca do formularza False - to po
    >pierwsze. Jeżeli tego nie zrobię to zmiana GET/POST spowoduje przerwanie
    >żądania XHR. Dopiero po zakończonym żądaniu wysyłam formularz usuwając
    >funkcję z onSubmit i robiąc forma.submit();

    >Osobnym problemem jest brak obsługi JS po stronie klienta...

    Dzięki za podpowiedź choć przyznam szczerze nie do końca jakoś widzę to
    działanie.
    Jak rozumiem mam najpierw przerwać wysyłanie formularza, obsłużyć ajax i na
    koniec wysłać formularz?
    Naprawdę nie ma sposobu aby to jakoś w JQuery zrobić żeby to co ma iść do
    bazy poszło a formularz przeszedł na platnosci.pl swoją drogą?
    I co oznacza brak obsługi JS? Przy takiej akcji nie będzie obsługi JS? To
    trochę by mi też pomieszało bo walidację formularza mam w JS i chyba wtedy
    przestanie ona działać:(

    dzięki i pozdrawiam
    Sławek


  • 6. Data: 2011-12-20 10:06:09
    Temat: Re: formularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
    Od: Exe Very Cute <k...@p...onIet.pl>

    W dniu 2011-12-20 09:34, S pisze:

    > Jak rozumiem mam najpierw przerwać wysyłanie formularza, obsłużyć ajax i
    > na koniec wysłać formularz?

    Nie tyle przerwać co w ogóle nie wysyłać formularza.

    sprawdź sobie:

    <form action="" name="dupa" onsubmit="return false;">
    <button type="submit">wyślij</button>
    <form>


    > Naprawdę nie ma sposobu aby to jakoś w JQuery zrobić żeby to co ma iść
    > do bazy poszło a formularz przeszedł na platnosci.pl swoją drogą?

    Ależ dokładnie jak opisałem - to będzie tak działać. No, może nie do
    końca, bo najpierw musi zostać zakończony XHR. Przyczyna jest banalna -
    jeżeli jesteś na stronie X i tam jakiś AJAX się męczy w tle, to
    przejście ze strony X na stronę Y musi przecież zakończyć działanie
    wszelkich skryptów (w tym AJAX) na stronie X. Dlatego że na przykład:
    - i tak nie będzie już gdzie zwrócić wyniku XHR, bo strona X już została
    zamknięta
    - po 2 godzinach chodzenia po necie miałbyś kilka wiszących sesji XHR w
    przeglądarce

    Więc w momencie gdy wysyłasz formularz do platnosci.pl Twój skrypt
    zapisujący przestaje działać. Dlatego nie możesz tego wysyłać w tym
    samym momencie. XHR musi być pierwszy w kolejce.

    > I co oznacza brak obsługi JS? Przy takiej akcji nie będzie obsługi JS?
    > To trochę by mi też pomieszało bo walidację formularza mam w JS i chyba
    > wtedy przestanie ona działać:(

    Nie o to mi chodziło. Jeżeli ktoś ma wyłączoną obsługę JS to wtedy nie
    ma także XHR, a więc w ogóle nie zapiszesz danych.

    Pozdr
    Exe Very Cute


  • 7. Data: 2011-12-20 10:24:42
    Temat: Re: formularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
    Od: "S" <a...@w...pl>


    -----Oryginalna wiadomość-----
    >From: Exe Very Cute Sent: Tuesday, December 20, 2011 11:06 AM Newsgroups:
    >pl.comp.www Subject: Re: formularz wysłanie i jednoczesne odczytanie
    >zawartości ajax/jquery
    >W dniu 2011-12-20 09:34, S pisze:
    >
    >> Jak rozumiem mam najpierw przerwać wysyłanie formularza, obsłużyć ajax i
    >> na koniec wysłać formularz?

    >>Nie tyle przerwać co w ogóle nie wysyłać formularza.

    Jeszcze raz dzięki za pomoc.
    Tak, zrozumiałem o co Ci chodzi i faktycznie przecież innego wyjścia nie ma
    jak przerwać wysłanie formularza i obsłużyć ajax.
    Wydumałem coś takiego jquery
    $('#payform2').submit(function() {

    $.loader({
    className:"loader_class",
    content:''
    });

    $.post("ajax/get_post_data_register_for_pay.php",
    $("#payform2").serialize(),function(){
    $('#payform2').attr('id', 'payform');


    });
    return false;
    });

    I faktycznie to wysyła mi ajaxem dane do skryptu php (wprawdzie nie
    sprawdziłem jeszcze jak bo na sztywno sobie wbiłem w tym php ale się dzieje
    i chyba jak już wysyła to normalnie obsłuże je postem)
    Problem teraz w tym jak ponownie uruchomić formularz aby poszedł do
    platności.pl
    Wykombinowałem, że aby nie zapętlać to sobie zmienie id formularza
    $('#payform2').attr('id', 'payform');

    i wywołam jakąś akcję dla #payform
    Mam nadzieję, że jest w jquery jakieś zdarzenie które z automatu odpali
    wysyłanie formularza. Jak na razie to udało mi się tylko zapętylić sobiąc
    ponownie sybmit dla payform2 ale to jakby logiczne.
    Trzeba chyba dać też jakąś detekcję czy istniej już #payform bo jeśli po
    prostu wpiszę akcję dla #payform to dostaję error
    Nie wiem może źle myślę ala taka logika rozwiązania tego problemu mi się
    nasuwa.

    pozdrawiam
    Sławek


  • 8. Data: 2011-12-20 10:30:53
    Temat: Re: formularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
    Od: Exe Very Cute <k...@p...onIet.pl>

    W dniu 2011-12-20 11:24, S pisze:

    > Wykombinowałem, że aby nie zapętlać to sobie zmienie id formularza

    Lepiej nic tam nie zapętlaj... http://api.jquery.com/ajaxComplete/

    > Mam nadzieję, że jest w jquery jakieś zdarzenie które z automatu odpali
    > wysyłanie formularza.

    W JS to jest po prostu document.getElementById('id_mojej_formy').submit();

    W jQuery pewnie $('#id_mojej_formy').submit();

    Pozdr
    Exe Very Cute


  • 9. Data: 2011-12-20 11:32:22
    Temat: Re: formularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
    Od: "S" <a...@w...pl>


    >Użytkownik "Exe Very Cute" napisał w wiadomości grup
    >dyskusyjnych:jcpo4c$7j1$...@n...dialog.net.pl...

    >W dniu 2011-12-20 11:24, S pisze:

    >> Wykombinowałem, że aby nie zapętlać to sobie zmienie id formularza

    >Lepiej nic tam nie zapętlaj... http://api.jquery.com/ajaxComplete/

    >> Mam nadzieję, że jest w jquery jakieś zdarzenie które z automatu odpali
    >> wysyłanie formularza.

    >W JS to jest po prostu document.getElementById('id_mojej_formy').submit();

    >W jQuery pewnie $('#id_mojej_formy').submit();

    Szczerze mówiąc wymiękłem. Chciałem to zrobić elegancko ale się nie dało.
    Doszedł problem u mnie z walidacją też w jquery i jak zrobiłem submit to
    skrypt się uruchamiał nawet gdy walidacja przebiegła niepomyślnie.
    W końcu doszedłem do wniosku, że może wywołam tego ajax dla innego zdarzenia
    i faktycznie zrobiłem dla .click(). Fakt, ze za każdym kliknięciem lecą dane
    i jest to mało elegancje ale dzięki ukrytemu polu formularza wiem, że to
    ciągle te same dane i jeśli rekord jest w bazie to update jeśli nie ma to
    insert. Mało eleganckie ale eleganckie rozwiązanie chyba jest zbyt
    skomplikowane. Przynajmniej dla mnie:)
    Jeszcze raz dziękuję Ci za pomoc.

    pozdrawiam
    Sławek


  • 10. Data: 2011-12-20 18:50:10
    Temat: Re: formularz wysłanie i jednoczesne odczytanie zawartości ajax/jquery
    Od: NotBear <p...@i...pl>

    W dniu 2011-12-20 12:32, S pisze:
    >> Lepiej nic tam nie zapętlaj... http://api.jquery.com/ajaxComplete/
    > Szczerze mówiąc wymiękłem. Chciałem to zrobić elegancko ale się nie
    > dało.

    Pokombinuj tutaj jeszcze. Exe Very Cute powyzej sugerowal zaczekac az
    sie AJAX wykona i dopiero wtedy w tzw. callbacku uruchomic wysylke.

    Ja bym tu jeszcze rozpatrzyl mozliwosc wystapienia bledu i nie
    rozpoczynal wtedy platnosci, czyli zamiast ajaxComplete:
    http://api.jquery.com/ajaxSuccess/ - gdy ok
    http://api.jquery.com/ajaxError/ - gdy nie ok


    > Doszedł problem u mnie z walidacją też w jquery i jak zrobiłem
    > submit to skrypt się uruchamiał nawet gdy walidacja przebiegła
    > niepomyślnie.

    if (!walidacjaWJQuery()) {
    formularz.submit();
    }

    Albo takie stare zaklecie jesli walidacja jest wcisnieta w atrybucie
    /onsubmit/:

    if(formularz.onsubmit && formularz.onsubmit()){
    formularz.submit();
    }

    --
    NotBear

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: