Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AJAX - wysyłanie bez odświeżania strony
Forum PHP.pl > Forum > Po stronie przeglądarki
piotr485
Witam, napisałem taki kod:

[JAVASCRIPT] pobierz, plaintext
  1. <script>
  2.  
  3.  
  4. $(function () {
  5. $('form').bind('click', function (event) {
  6.  
  7. event.preventDefault();// using this page stop being refreshing
  8. var IDS = $(this).attr('data-send');
  9. $.ajax({
  10. type: 'POST',
  11. url: '/ajax.php',
  12. data: $('form').serialize() + '&ids='+ IDS,
  13.  
  14. success: function () {
  15. alert('dodano rekord');
  16. }
  17. });
  18.  
  19. });
  20. });
  21. </script>
[JAVASCRIPT] pobierz, plaintext


do tego formularz:

  1. <form action="#wynik" method="POST" style="background: red;">
  2. <div><input type="submit" name="akcja1" value="Akcja 1" data-send="25"></div>
  3. <div><input type="submit" name="akcja2" value="Akcja 2" data-send="27"></div>
  4. </form>


w pliku ajax.php mam dodawanie rekordu do bazy.

i teraz mam kilka pytań:

1. Wysyłanie do bazy działa po kliknięciu, ale w pliku ajax.php mam jeszcze zmienną $_POST['ids'] i ją dodaje do bazy, ale nie jest ona odczytywana (czyta mi undefined) musi być gdzieś błąd przy jej poborze w skrypcie ajax'a, ale nie mogę go namierzyć
2. chciałbym, aby po dodaniu rekordu poprzez kliknięcie odświeżać jednego diva, tylko jak przekazać to do skryptu że po kliknięciu w jakikolwiek submit ma się odświeżać dany div z zapytaniem mysql
3. dlaczego rekord się również wysyła do bazy w przypadku kiedy kliknę w okolicach przycisku input a nie bezpośrednio w niego (a dokładnie to tam gdzie jest tło dla <form>)

proszę o pomoc, z góry dziękuję
Comandeer
ad. 1) Jest odczytywana, na co wartość undefined wskazuje. No i dokładnie taką wartość przecież ma ta zmienna. Próbujesz przypisać do niej wartość zwróconą przez żądanie Ajaksem (w którym tę zmienną próbujesz wykorzystać!) – a żądania Ajaksowe nie zwracają wartości, bo są asynchroniczne
ad. 2) Wywołać jego odświeżenie w success żądania?
ad. 3) Bo wywołujesz akcję po kliknięciu formularza. A Ty tak naprawdę chcesz ją wywołać po wysłaniu formularza (submit, nie click).
piotr485
zrobiłem to innym skryptem:

z tym że mam mały problem moje przyciski na komputerze działają w 85% kliknięć, a na telefonie w 60%.

zauważyłem że jak tam na kancie przycisku to wtedy nie działa musi być prosto w napis który jest w przycisku,

jak zrobić żeby tło przycisku też się wliczało do onclicka ?


<button type="submit" onclick="ur('1:15');"> +3</button>
viking
Pokaż style jakie masz przypisane do buttona.
Dodatkowo (używałeś przed edycją):
Cytat
Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are removed as of jQuery 3.0. You can use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.
Comandeer
Ale coś Ty się tak uparł na klikanie? Akcja ma być wywoływana przy WYSŁANIU formularza (submit).

[onclick] to pozostałość po pradawnym DOM0 → https://kornel.ski/onclick
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-2024 Invision Power Services, Inc.