Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przesylanie zmiennej, Zmienna w modal
prostowniczek2
post 22.02.2023, 23:15:10
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 22.02.2023

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


Witam. Posiadam na stronie sklep, w którym jest kilka npc. Od danego npc zależy co można sprzedać. Musze przekazac zmienna id item, oraz id npc.
Z id item nie mam problemu, lecz nie moge przeslac tego 2.

Plik index:
  1. $(document).ready(function(){
  2. $('.view_data').click(function(){
  3. var id = $(this).attr("id");
  4. $.ajax({
  5. url:"ajax/item-details.php",
  6. method:"post",
  7. data:{id:id},
  8. success:function(data){
  9. $('#id').html(data);
  10. $('#dataModal').modal("show");
  11. }
  12. });
  13. });
  14. });


Kod ktory wyswietla informacje o item po kliknieciu w niego:
  1. <span name="view" value="view" id="<?php echo $wiersz["id"]; ?>" class="view_data" /><span class='tooltipEl' id='user_<?= $id ?>'><img src=<?=$obrazek?>></span></span>


Zmienna id itemu jest w pliku jako:
  1. $_POST["id"]


Teraz potrzebuje jakos zdobyc id npc. bardzo prosze o pomoc, bo siedze juz z tym 2 godziny i nic sad.gif
Go to the top of the page
+Quote Post
Salvation
post 23.02.2023, 00:10:33
Post #2





Grupa: Zarejestrowani
Postów: 338
Pomógł: 70
Dołączył: 15.07.2014

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


Brakuje mi informacji co to jest to NPC i gdzie ono jest "fizycznie" w kodzie. Bo ID itemu to jest to:
Kod
id="<?php echo $wiersz["id"]; ?>"

Go to the top of the page
+Quote Post
viking
post 23.02.2023, 06:18:00
Post #3





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

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


data:{id:id, idnpc:idnpc},


--------------------
Go to the top of the page
+Quote Post
prostowniczek2
post 23.02.2023, 06:39:51
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 22.02.2023

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


Id fizycznie w kodzie jest w tym samym pliku pod zmienna $npc, jeśli zamienię wiersz_id na $npc to przesyłam id npc. A potrzebuję sobie zmienne
Go to the top of the page
+Quote Post
trueblue
post 23.02.2023, 08:46:51
Post #5





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Trudno się czyta Twoje posty.

Skoro zmienna $npc jest w tym samym kodzie, to dlaczego nie dodasz jej jako kolejny atrybut do elementu <span>?
Swoją drogą atrybuty, tu atrybut id, nie służy do przechowywania wartości id z bazy danych, ale nadawania unikalnego identyfikatora w drzewie DOM i nie może zaczynać się cyfrą.
Do takich zadań jak Twoje używa się atrybutów data-*.


--------------------
Go to the top of the page
+Quote Post
prostowniczek2
post 23.02.2023, 10:23:02
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 22.02.2023

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


Problem msm taki, że nie wiem jak dodać ten atrybut w span, I przesłać go data razem z atrybutem id.
Tym kodem co mam teraz po naciśnięciu obrazka, w pliku item-details dostaje tylko atrybut id, a potrzebuję 2 atrybut z id2 np

Ten post edytował prostowniczek2 23.02.2023, 10:23:21
Go to the top of the page
+Quote Post
trueblue
post 23.02.2023, 10:26:08
Post #7





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Problem jest chyba taki, że nie czytasz dokładnie co piszemy.
Rozwiązania są tu:
https://developer.mozilla.org/en-US/docs/Le...data_attributes
http://forum.php.pl/index.php?s=&showt...t&p=1261185


--------------------
Go to the top of the page
+Quote Post
prostowniczek2
post 23.02.2023, 18:16:26
Post #8





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 22.02.2023

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


Udało mi się !
A rozwiązanie zrobiłem takie:
  1. $(document).ready(function(){
  2. $('.view_data').click(function(){
  3. const article = document.querySelector("#idnpc");
  4. var id = $(this).attr("id");
  5. var idnpc = article.dataset.idnpc;
  6. $.ajax({
  7. url:"ajax/item-details.php",
  8. method:"post",
  9. data:{id:id, idnpc:idnpc},
  10. success:function(data){
  11. $('#id').html(data);
  12. $('#dataModal').modal("show");
  13. }
  14. });
  15. });
  16. });


  1. <span name="view" value="view" id="<?php echo $wiersz["id"]; ?>" class="view_data" /><article id="idnpc" data-idnpc="<?=$npc?>"></article><span class='tooltipEl' id='user_<?= $id ?>' ><img src=<?=$obrazek?>></span></span>


Dziękuuje za 1 link ktory odales.
Go to the top of the page
+Quote Post
trueblue
post 23.02.2023, 18:55:49
Post #9





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


1. Dlaczego nie dodałeś tego atrybutu do elementu <span>, tylko utworzyłeś nowy?
2. Ten nowy element powinien miec unikalne id, w ten sposób będziesz dla każdego klikniętego <span> wysyłał idnpc z pierwszego <article>
3. Skoro utworzyłeś atrybut data-idnpc z pomocą atrybutuów data-*, to dlaczego nie zmieniłeś analogicznie w <span> id na data-id?


--------------------
Go to the top of the page
+Quote Post
prostowniczek2
post 24.02.2023, 07:25:02
Post #10





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 22.02.2023

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


Po pracy spróbuję to zrobić jak piszesz. Podkreślam, że z ajax zapoznałem się 3 dni temu Głównie próbujedziałaćz poradników i gotowców, wtedy więcej kunam. Będę miał jeszcze dużo pytań biggrin.gif

Ten post edytował prostowniczek2 24.02.2023, 07:26:04
Go to the top of the page
+Quote Post
viking
post 24.02.2023, 07:56:32
Post #11





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

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


Ajax to tylko metoda przesyłania żądania w tle. Tu jeszcze mieszasz dodatkowo natywne metody js const article = document.querySelector("#idnpc"); z jquery.


--------------------
Go to the top of the page
+Quote Post
Salvation
post 24.02.2023, 15:10:15
Post #12





Grupa: Zarejestrowani
Postów: 338
Pomógł: 70
Dołączył: 15.07.2014

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


Jak już, to HTML powinien wyglądać tak:
  1. <span name="view" data-id="<?= $wiersz['id'] ?>" data-idnpc="<?= $npc ?>" class="view_data" /><span class="tooltipEl" id="user_<?= $id ?>"><img src="<?= $obrazek ?>" /></span></span>

A tak JS:
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2. $(document).on('click', '.view_data', function() {
  3. const id = $(this).data('id') || '';
  4. const idnpc = $(this).data('idnpc') || '';
  5.  
  6. $.ajax({
  7. url: 'ajax/item-details.php',
  8. method: 'post',
  9. data: {
  10. id: id,
  11. idnpc: idnpc
  12. },
  13. success: function(data) {
  14. $('#id').html(data);
  15. $('#dataModal').modal('show');
  16. }
  17. });
  18. });
  19. });
[JAVASCRIPT] pobierz, plaintext


Ten post edytował Salvation 24.02.2023, 15:18:39
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: 28.03.2024 - 10:26