Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax]
Forum PHP.pl > Forum > XML, AJAX
GreenGo
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" ?
skowron-line
Temat: ADVAJAX_skad_sie_uczyc
No i z tego tematu możesz się dowiedziec co i jak.
vokiel
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
GreenGo
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ść)
vokiel
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. }
webdice
Proszę o dodanie tytułu tematu, sam tag nim nie jest.
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.