Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z ajax przy while
diamondking
post 13.02.2021, 15:01:49
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 7.02.2014

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


W PHP mam funkcję WHILE, która generuje mnie listę przycisków i każdy ma unikatową wartość:

  1. <button id="btnwykonaj" class="btn btn-primary btn-sm btnwykonaj" value="'.$rekord['id'].'">Odbierz nagrodę</button>


Mam też AJAX:

  1. $('#btnwykonaj').click(function(){
  2. var id = $(this).val();
  3.  
  4. //Stop the form from submitting itself to the server.
  5. e.preventDefault();
  6. var id = id;
  7. $.ajax({
  8. type: "POST",
  9. url: 'ajax/nagroda.php',
  10. data: {id: id},
  11. success: function(data){
  12.  
  13.  
  14. if(data.trim()=='ok'){
  15. toastr.success('Nagroda kupiona', 'Sukces');
  16.  
  17. setTimeout(function(){
  18. $(location).attr('href', 'nagrody.php');
  19. }, 2000);
  20.  
  21.  
  22. }
  23.  
  24.  
  25.  
  26.  
  27. }
  28. });
  29. });


ale skrypt działa tylko dla pierwszego przycisku sad.gif
wiecie w czym może być problem?

EDIT

Poradziłem sobie w ten sposób:

  1. <button onclick="checkValue(this);" class="btn btn-primary btn-sm btnwykonaj" value="'.$rekord['id'].'">Odbierz nagrodę</button>



  1. <script>
  2. function checkValue(ele) {
  3. var nagrodaid = ele.value;
  4.  
  5. $.ajax({
  6. type: "POST",
  7. url: 'ajax/nagroda.php',
  8. data: {id: nagrodaid},
  9. success: function(data){
  10.  
  11.  
  12. if(data.trim()=='ok'){
  13. toastr.success('Kupiono nagrodę', 'Sukces');
  14.  
  15. setTimeout(function(){
  16. $(location).attr('href', 'nagrody.php');
  17. }, 2000);
  18.  
  19.  
  20. }
  21.  
  22. }
  23. });
  24.  
  25. }
  26. </script>


Ten post edytował diamondking 13.02.2021, 15:49:05
Go to the top of the page
+Quote Post
LowiczakPL
post 13.02.2021, 18:44:33
Post #2





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


było

Kod
<button id="btnwykonaj"

$('#btnwykonaj').click(function(){


ID musi być unikalne czyli wystepuje tylko 1 raz, więc Twoj kod reagował na klik o ID btnwykonaj

jeśli kod ma reagować na więcej kliknięć robisz to jako nazwę klasy selektora czyli

Kod
<button class="btnwykonaj"

$('.btnwykonaj').click(function(){



Nie rób w ten sposób aby dodawać onclick, to obejście a nie rozwiązanie problemu. Zapomnij że istnieje onclick.

Obejścia problemów powodują nawarstwianie się problemów.

Ten post edytował LowiczakPL 13.02.2021, 18:47:26


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
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: 29.03.2024 - 00:00