Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [wolontariat]wykonywanie 2 akcji po kliknięciu na button
Forum PHP.pl > Inne > Giełda ofert > Poszukuję
Norbit_24
Nie wiem dokładnie jak zrobić, alby po kliknięciu na button wykonywały się 2 akcje..
1 to <form> (to jest tylko przenoszenie do innego pliku, nie wysyła tutaj nic), a 2 to musi wysłać dane z <tetxarea> do pliku plik_akcja2.php i to ma się wykonywać w tle, tzn ma je wysłać i ten skrypt odbiera je i wykonuje.. User ma tego nie widzieć.

[PHP] pobierz, plaintext
  1. <form action="akcja1.php">
  2. <textarea name="text" id="text" rows="15" cols="55"></textarea>
  3. <button onclick="akcja2()">Akcja</button>
  4. </form>
  5. function akcja2(){
  6. //plik_akcja2.php
  7. }
[PHP] pobierz, plaintext

Przypuszczam, że można to wykonać w js przez onclick, jednak nie umiem wykonać do tego funkcji..

Z góry dzięki za pomoc..
cudny
Najlepiej jak byś to zrobił ajaxowo.
Wykonujesz sobie wtedy skrypt z jednego pliku, a do drugiego po prostu przechodzisz.
Poczytaj jak używać ajaxa.
Nie rozumiem tylko dla czego nie można w jednym pliku wykonać obu akcji - dla mnie to najbardziej logiczne rozwiązanie.

pzdr
Cudny
Norbit_24
Wiem.. Tutaj akurat jest to niemożliwe, ponieważ do tego pliku, do którego są wysyłane dane wykonuje się ponad 1 minutę i wtedy ponad minute trzeba czekać aż przeniesie mnie do drugiego pliku.. a tym rozwiązaniem wyśle dane do tamtego pliku i będą się wykonywać, akcja1 przeniesie mnie do innego pliku.

Niestety ajaxa jeszcze nie umiem i chciałem prosić o kod.
Z góry dzięki.
zegarek84
tutaj jest nie konieczny chociaż do inicjacji pliku możesz go użyć ale i tak będziesz musiał się posłużyć "sztuczką" gdyż przecież nie będziesz czekał na odpowiedź minutę winksmiley.jpg

wszystko da się zrobić bez ajaxa - już mniej więcej napisze co i jak a potem popróbujesz swoich sił winksmiley.jpg - w ajax'ie też pasowało by czekać na skończenie wykonywania się skryptu chyba że zrobisz tak jak niżej napisałem to na 2 plikach jeden ajaxem - ale po co jak nie trzeba winksmiley.jpg

robisz to w php tylko i kolejność taką jaką podałeś wg. logiki - może to być w jednym pliku a może być w dwóch gdzie drugi includujesz do pierwszego (można to na wiele sposobów zrobić nawet bez includowania - ale tak najprościej)....

i teraz najważniejsze.... w pierwszym kroku "budujesz" i wysyłasz stronę jaką chciałeś przesłać (nie myśl na razie o reszcie), jednak po wygenerowaniu tej zawartości musisz treść odrazu wysłać i zamknąć połączenie - do tego potrzebny będzie Ci ten zestaw funkcji:
Output Control Functions - jednak aby przeglądarka nie czekała też na skończenie skryptu trzeba też wysłąć odpowiedni nagłówek w header razem z treścią....
Obsługa połączeń - i przykład z ogólną ideą jaka potrzebujesz w drugim komentarzu - funkcji sleep nie potrzebujesz winksmiley.jpg....

jeszcze jedno - czasami niektórzy przerywają połączenie zanim strona się wczyta co przerwie normalnie wykonywanie skryptu - skoro skoro skrypt został zainicjowany więc masz dane z formularza który jednak chcesz zapisać i nie chcesz by sam się skrypt przestał wykonywać tylko dlatego, że ktoś np. wciśnie escape - i tu funkcja: ignore_user_abort - zastosuj ją na samym początku skryptu co zapeni Ci przynajmniej zapisanie formularza jeśli ktoś zerwie połączenie - no co do długości maksymalnego wykonywania skrytu to chyba nie musze nic więcej dopisywać skoro sam stwierdzasz ile on ma się wykonywać winksmiley.jpg

i to wszystko powinno Ci wystarczyć - a jeszcze jedno - jeśli kompresujesz strony i chcesz zamknać połaczenie to długość/wielkość strony jest trochu inna i trzeba jeszcze jeden myk zastosować - ale jak na szybko zerknąłem to w tym komentarzu drugim o którym napomniałem jest jedno z rozwiązań - czyli podwójny bufor wyjścia przy gzip - jest tam też napisane dlaczego winksmiley.jpg

pozdro i napisz czy sobie poradziłeś - a jeśli nie to podaj Swoje próby - jakiś kod to dalej napisze się co źle robisz winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.