Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [wolontariat]wykonywanie 2 akcji po kliknięciu na button
Norbit_24
post 25.02.2010, 22:58:31
Post #1





Grupa: Zarejestrowani
Postów: 163
Pomógł: 2
Dołączył: 7.03.2009

Ostrzeżenie: (0%)
-----


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..

Ten post edytował Spawnm 26.02.2010, 13:37:53
Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
cudny
post 25.02.2010, 23:07:36
Post #2





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

Ostrzeżenie: (0%)
-----


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


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post
Norbit_24
post 26.02.2010, 13:22:16
Post #3





Grupa: Zarejestrowani
Postów: 163
Pomógł: 2
Dołączył: 7.03.2009

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Norbit_24 26.02.2010, 13:25:20
Go to the top of the page
+Quote Post
zegarek84
post 26.02.2010, 13:55:49
Post #4





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


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


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 23:23