Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ajax]
GreenGo
post 2.02.2009, 14:43:11
Post #1





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

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


Witam.
W jaki sposób w ajaxie zrobić aby po naciśnięciu danego przycisku wysyłało się zapytanie do bazy danych i potem wykonało się kolejne zapytanie i wyświetlił się komunikat "dziękujemy" ?
Go to the top of the page
+Quote Post
skowron-line
post 2.02.2009, 15:03:51
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Temat: ADVAJAX_skad_sie_uczyc
No i z tego tematu możesz się dowiedziec co i jak.


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
vokiel
post 2.02.2009, 15:07:34
Post #3





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


1. Do zdarzenia onclick przycisku przypisać funkcję javascript, która wykona zapytanie ajax
2. W wywołanym ajaxem pliku php na serwerze wykonać zapytanie do bazy danych
3. Wykonać kolejne zapytanie, wyświetlić komunikat "dziękujemy" (np poprzez echo "dziękujemy")
4. Zwrócony w ajaxie komunikat wpisać do jakiegoś elementu na stronie

do ajaxa proponuję jquery, funkcję ajax


--------------------
Go to the top of the page
+Quote Post
GreenGo
post 2.02.2009, 15:50:53
Post #4





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

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


ok dzięki, poradziłem sobie (czesciowo) za pomocą mintAjax smile.gif
Chcę teraz zrobić tak aby w miejscu gdzie mam button
  1. <?php
  2. <input type="hidden" id="ip" value="'.$_SERVER['REMOTE_ADDR'].'">
  3.        <input type="hidden" id="id" value="'.$_POST['myname'].'">
  4.        <button onclick="SendRequest()">Głosuj</button>
  5. ?>

po wciśnięciu tego buttona wyświetlało się coś innego.
Chciałbym również, móc użyć wartości zwróconej w response. Np. jeśli w pliku z zapytaniem wykonam jeszcze inne zapytanie które zliczy rekordy to chciałbym aby przy 2 rekordach button do wysyłania się więcej nie pojawił. No i jak to zrobić bez przeładowania ? Jak przekazać do głównego pliku jakąś zmienną / wartość z pliku z zapytaniem ?

oto moja funkcja
  1. function SendRequest() {
  2.                        var req = mint.Request();
  3.                        req.AddParam("ip", $("ip").value);
  4.                        req.AddParam("id", $("id").value);
  5.                        req.Send("zap.php", "response");
  6.                      
  7.               }

(chce z zap.php z powrotem przekazać daną wartość)

Ten post edytował GreenGo 2.02.2009, 17:05:47
Go to the top of the page
+Quote Post
vokiel
post 4.02.2009, 12:15:39
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Tworzysz diva, który pokażesz po tym kliknięciu, możesz też do niego wczytać wynik działania ajaxa. Div domyślnie ukryty.
  1. <?php
  2. <div id="pokaze_go_po_kliknieciu" style="display: none;"></div>
  3. <div id="inputy">
  4. <input type="hidden" id="ip" value="'.$_SERVER['REMOTE_ADDR'].'">
  5. <input type="hidden" id="id" value="'.$_POST['myname'].'">
  6. <button onclick="SendRequest()">Głosuj</button>
  7. ?>

</div>
Nie wiem jak AdvAjax pobiera wynik zapytania, ale pewnie coś w stylu:
  1. onSuccess : function(obj) { var wynik_ajaxa = obj.responseText; }


Zwrócisz działanie pliku php przez zwykłe echo. Czyli w pliku php robisz te zapytania, i w zależności od wyniku zwracasz jakiś kod np: Pomyślnie pierwsze zapytanie to robisz echo 1, pomyślnie drugie zapytanie: echo 2, liczba zwróconych wyników większa od dwóch, to zwracasz 3.

Teraz w javascript pobierasz to co zwrócił skrypt php i w zależności od wyniku robisz jakąś akcję.

  1. function SendRequest() {
  2. document.getElementById('pokaze_go_po_kliknieciu').style.visibility = "visible";
  3. document.getElementById('inputy').style.visibility = "hidden";
  4. var req = mint.Request();
  5. req.AddParam("ip", $("ip").value);
  6. req.AddParam("id", $("id").value);
  7. req.Send("zap.php", "response");
  8. // tutaj odbierasz wynik zapytania i zapisujesz do np var wynik_ajaxa
  9. // robisz sobie switch, albo if, czy tablice, cokolwiek, np:
  10. if (wynik_ajaxa==3){
  11. document.getElementById('pokaze_go_po_kliknieciu').innerHTML = 'Pomyślnie zakończono zapytanie';
  12. }
  13. }


--------------------
Go to the top of the page
+Quote Post
webdice
post 4.02.2009, 12:27:19
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Proszę o dodanie tytułu tematu, sam tag nim nie jest.
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: 12.07.2025 - 08:20