Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][JS,jQuery] Wykonuje się tylko pierwszy wygenerowany przycisk
MateuszRyaN
post 21.08.2011, 21:07:06
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 10.11.2010
Skąd: Jastrzębie Zdrój

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


Witam, mam pewien problem.
PHP z bazy generuje mi pewne dane, w ostatniej tabelce mam przycisk np. "Zakończ". Powiedzmy że tych przycisków wygenerowało mi 30.
każdy z nich wygląda tak:
  1. <a id="small_button3" rel="?action=close_project&id=1">Zakończ</a>
  2. <a id="small_button3" rel="?action=close_project&id=2">Zakończ</a>
  3. <a id="small_button3" rel="?action=close_project&id=3">Zakończ</a>
  4. <a id="small_button3" rel="?action=close_project&id=4">Zakończ</a>
  5. itd...

Po kliknięciu w dany przycisk, ma się otworzyć dialog box, w ktorym jest zapytanie czy na pewno chce zakończyć, jeśli TAK, z "rel" pobiera mi linka i na niego przenosi i wykonuje sie dalsza część skryptu.

Na chwile obecną wszystko jest OK na pierwszym wygenerowanym przycisku ;/ Na reszcie po kliknięciu nie ma w ogóle akcji. Podejrzewam, że trzeba zrobić jakąś pętle, coś tam kombinowałem ale nic mi nie wyszło.

Poniżej zamieszczam funkcję z dopisanymi komentarzami co za co odpowiada:
  1. $(function() {
  2. $( "#dialog:ui-dialog" ).dialog( "destroy" ); //dialog box nie aktywny
  3. $( "#dialog-confirm" ).hide(); // treść dialog boxa ukryta
  4. $("#small_button3").click( function() {
  5. $(this).addClass("for_dialog"); // do klikniętego small_button3 dodaje mi klase for_dialog
  6. var link = $("a.for_dialog").attr("rel"); // wyciąga mi wartość z "rel"
  7. $( "#dialog-confirm" ).dialog({
  8. resizable: false,
  9. height:140,
  10. modal: true,
  11. buttons: {
  12. "Tak": function() {
  13. $( this ).dialog( window.location.href = ''+link+'' ); // przenosi na link
  14. },
  15. "Nie": function() {
  16. $( this ).dialog( "close" ); // zamyka dialog
  17. }
  18. }
  19. });
  20. });
  21. });
  22. </script>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Rid
post 21.08.2011, 21:28:44
Post #2





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


  1. <a id="small_button3" rel="?action=close_project&id=1">Zakończ</a>
  2. <a id="small_button3" rel="?action=close_project&id=2">Zakończ</a>
  3. <a id="small_button3" rel="?action=close_project&id=3">Zakończ</a><a id="small_button3" rel="?action=close_project&id=4">Zakończ</a>


Nadawanie tej samej nazwy id różnym tagom w formularzu jest jak najbardziej nieprawidłowe.Niech Pan pozmienia id tagów a na różne albo wogóle je usunie i doda do nich klasę.

  1. <a class="jakas_klasa" rel="?action=close_project&id=1">Zakończ</a>
  2. <a class="jakas_klasa" rel="?action=close_project&id=2">Zakończ</a>
  3. <a class="jakas_klasa" rel="?action=close_project&id=3">Zakończ</a>
  4. <a class="jakas_klasa" rel="?action=close_project&id=4">Zakończ</a>


  1. <script>$(function() { $( "#dialog:ui-dialog" ).dialog( "destroy" ); //dialog box nie aktywny
  2. $( "#dialog-confirm" ).hide(); // treść dialog boxa ukryta
  3. $(a.jakas_klasa).click( function() {
  4. $(this).addClass("for_dialog"); // do klikniętego small_button3 dodaje mi klase for_dialog
  5. var link = $("a.for_dialog").attr("rel"); // wyciąga mi wartość z "rel"
  6. $( "#dialog-confirm" ).dialog({
  7. resizable: false,
  8. height:140,
  9. modal: true,
  10. buttons: {
  11. "Tak": function() {
  12. $( this ).dialog( window.location.href = ''+link+'' ); // przenosi na link }, "Nie": function() {
  13. $( this ).dialog( "close" ); // zamyka dialog } } }); });});</script>


Ten post edytował Rid 21.08.2011, 21:32:09
Go to the top of the page
+Quote Post
MateuszRyaN
post 21.08.2011, 21:35:30
Post #3





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 10.11.2010
Skąd: Jastrzębie Zdrój

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


Czyli mam rozumieć, że taki efekt jest dlatego że wartości id="small_button3" są wszędzie takie same? No i czy będzie różnica że operacja będzie wykonywała się tylko na klasach. W sensie... jakby było class="small_button3" a przy kliknięciu dodawało by mi id id="for_dialog", będzie to działać? ;/

Faktycznie działa, nie wiedziałem o tym że ustawienie id a class robi w takich przypadkach problemy. Dzięki śliczne za pomoc smile.gif

Ten post edytował MateuszRyaN 21.08.2011, 21:42:18
Go to the top of the page
+Quote Post
Rid
post 21.08.2011, 21:45:55
Post #4





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Cytat
Czyli mam rozumieć, że taki efekt jest dlatego że wartości id="small_button3" są wszędzie takie same?

Tak najprawdopodobniej to powoduje błąd.Może źle to wyjaśniam,ale to tak jakby wykonywał Pan operację w jq na trzech tych samych tagach jednocześnie.

Cytat
W sensie... jakby było class="small_button3" a przy kliknięciu dodawało by mi id id="for_dialog", będzie to działać? ;/


Niech Pan nie kombinuje z id tylko dodaje inną klasę.

No to fajnie,że działa specool.gif

Ten post edytował Rid 21.08.2011, 21:49:03
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: 13.08.2025 - 23:02