• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przesłanie informacji do innej podstrony PHP

VPS Starter Arubacloud
0 głosów
373 wizyt
pytanie zadane 11 lipca 2019 w PHP przez mateusz.zajac Obywatel (1,460 p.)

Cześć,

Mam dwie strony categories.php i list.php W pliku categories.php wyciągam z bazy danych tytuł listy i link do obrazka dla niego. Pętla wyciąga wszystkie listy z wybranej wcześniej kategorii.  

//pobieramy wybor z menu na stronie głównej
                        $category = $_GET['category'];  
                      //zapytanie do bazy o listę z danej kategorii
                        if ($rezultat = @$polaczenie->query("SELECT lists.title_lists, lists.link_lists, lists.category, lists.id FROM lists WHERE lists.category='$category';"))
                        {
                          //sprawdzamy ile jest wierszy w bazie pod daną kategorią
                          $ile_elementow = $rezultat->num_rows;
                          //Pętla się wykonuje tyle razy ile jest wierszy 
                          //W pojedyńczej iteracji dodaje element listy
                          //Tytuł listy oraz link do zdjęcia jest wyciągany z bazy danych
                          for($i=0;$i<$ile_elementow;$i++)
                          {
                            $wiersz = $rezultat->fetch_assoc();
                            echo '<li class="item-thumbs span3 design" data-id="'.$wiersz["id"].'" data-type="icon">
                                   <a href="list.php?title_list='.$wiersz["title_lists"].'"><img src="img/works/thumbs/image-02.jpg" class="thumbs-opacity" alt=""></a>
                                   <div class="thumbs-title">'.$wiersz["title_lists"].'</div></li>';

                          }

(Tak wiem, że obrazek będzie taki sam. Podepnę grafikę, jak tylko ją przygotuje)

Dzięki pętli powyżej, wyświetla mi się na stronie lista. Działa to bez zarzutu.

Na stronie list.php mam wyciąganie elementów listy z bazy. To także działa, ale chcę aby były to elementy dla wybranej wcześniej listy, problem jaki muszę rozwiązać to:

W jaki sposób dostać się do konkretnego elementu <li> wyświetlanej listy w categories.php?

W kodzie html mamy coś takiego jak data-id data-type służy to do sortowania na stronie. Umieściłem w data-id ID listy z bazy danych. Kiedy podejrzę kod strony widzę listę elementów <li> i każdy ma unikatowe ID w polu data-id, ale jak się do tego dostać nie wiem :) 

Ktoś zna rozwiązanie zagadki? :)

2 odpowiedzi

0 głosów
odpowiedź 11 lipca 2019 przez wiktoz Mądrala (7,040 p.)

Ja bym użył tutaj ajaxu. Czyli:

  1. Wybierasz coś z listy w categories.php
  2. Po naciśnięciu przycisku np. zatwierdź pod tą listą wysyłasz w zmiennej sesyjnej lub przy pomocy get to co wybrałeś i przenosisz usera na stronę list.php
  3. Na list.php odczytujesz zmienną i wyświetlasz odpowiednie dane.

 

komentarz 11 lipca 2019 przez mateusz.zajac Obywatel (1,460 p.)
Udało mi się to osiągnąć przy pomocy php. Do linku dodaję tytuł listy i pobieram później za pomocą GET.

Czy dzięki użyciu ajax będę mógł przesłać tą informację inaczej niż _GET?  Wolałbym mieć ładny link w przeglądarce :)  Jeszcze nie korzystałem z ajax. Zmienna sesyjna odpada u mnie, ponieważ gdy pętla wykonuje iterację to nadpisuje wartość zmiennej sesyjnej i zawsze dostaję ostatnią wartość z bazy
komentarz 11 lipca 2019 przez wiktoz Mądrala (7,040 p.)

Tak. Dzięki ajaxowi będziesz miał "ładne linki".

$( "#id_przycisku" ).on( "click", function() {
   var listName = $( "#id_selecta" ).attr( "data-id" )

    $.ajax({
      method: "POST",
      url: "przyklad.php",
      data: { name: listName }
    });
}

Tutaj dałem Ci taki przykładowy kodzik z ajaxem. Musisz podpiąć do niego bibliotekę jQuery. W pliku przyklad.php tworzysz kod php, który ma się wykonać. Numer atrybutu pobierasz wcześniej do zmiennej listName i wysyłasz do przyklad.php jako $_POST['name']. Musisz pamiętać tylko, że ajax po wykonaniu kodu "wróci" do tego pliku, z którego został wywołany, więc musisz zrobić też przekierowanie. 

0 głosów
odpowiedź 11 lipca 2019 przez SmoothCrash Obywatel (1,520 p.)
No to wstaw do tego <li> link z ID np

<li><a href="list.php?id=2">link do id = 3</a></li>

i juz po kliknieciu masz przeslane metoda get link do strony z parametrem ID

tam odbierzesz i pobierzez z bazy dana gdzie id = (int)$_GET['id']

Podobne pytania

0 głosów
2 odpowiedzi 204 wizyt
0 głosów
2 odpowiedzi 266 wizyt
pytanie zadane 17 lutego 2019 w PHP przez zerakot Obywatel (1,870 p.)
0 głosów
2 odpowiedzi 305 wizyt
pytanie zadane 6 czerwca 2016 w PHP przez hiper007 Stary wyjadacz (11,270 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...