Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> AJAX - wysyłanie bez odświeżania strony
piotr485
post 4.09.2016, 09:22:54
Post #1





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

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


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ę

Ten post edytował piotr485 4.09.2016, 09:55:20
Go to the top of the page
+Quote Post
Comandeer
post 4.09.2016, 11:53:26
Post #2





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


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


--------------------
Go to the top of the page
+Quote Post
piotr485
post 4.09.2016, 20:14:00
Post #3





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

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


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>

Ten post edytował piotr485 5.09.2016, 05:45:47
Go to the top of the page
+Quote Post
viking
post 5.09.2016, 06:17:13
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


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.


--------------------
Go to the top of the page
+Quote Post
Comandeer
post 5.09.2016, 17:12:01
Post #5





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


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


--------------------
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: 25.04.2024 - 03:17