Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przesłanie ID po kliknięciu w link do tej samej strony
Forum PHP.pl > Forum > Przedszkole
shemko
Witam, mam problem. Jak przesłać numer ID po kliknięciu w dany wpis, który pojawia się w tym samym oknie przez skrypt JQuery "overlay" ?

kod z linkiem:
  1. <div class="foto" style="color:#000"><a data-overlay-trigger href="#!?id='.$wiersz['id'].'"><img src="zdjecia/'.$wiersz['photos'].'" style="margin-top:5px; margin-bottom:5px; width:250px"></a></div></div>';


Próba odebrania numeru ID z GET:
  1. $sql3 = 'SELECT * FROM `notes` WHERE id = '.$_GET['id'].'';


Wyskakuje komunikat : "Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/u698940803/public_html/index.php on line 173"

Może można jakoś zrobić że po kliknięciu w dany wpis jego numer ID będzie dodawany do jakiejś zmiennej?
patry6123
Jaki Ci wyświetla link? Bo href="#!?id=coś_tam' wygląda dość dziwnie. Raczej bym to zrobił href="?id=coś_tam".
shemko
Ten link:

  1. <a data-overlay-trigger href="#!?id='.$wiersz['id'].'">


Wczytuje skrypt JQuery z "overlay" który wyświetla zawartość divów poniżej. w małym okienku a resztę strony przyciemnia:

  1. <div class="overlay">
  2. <div class="modal">
  3.  
  4. zawartość
  5.  
  6. </div>
  7. </div>


Może kwestia użycia innego skryptu z overlay? W najgorszym wypadku mogę zrobić wpis w odzielnej stronie .php i wysyłać ID za pomocą post i get.

Pozmieniałem trochę <a href="#!"> i mniej więcej wiem na czym polega problem. Jeśli usunę # to jest problem z wyświetlaniem okienka overlay (pojawia się i od razu znika). Za to wtedy ID jest przesyłane dopiero za drugim kliknięciem (pierwsze wpisuje ID do adresu, drugie zostaje wczytane do funkcji GET). Chciałem aby wpisy wyświetlały się tak jak zdjęcia na facebooku, instagramie itd. bez robienia kolejnej podstrony do przeglądania wpisów.
patry6123
Jak to działa? Bo przecież w JS-ie nie odwołasz się do bazy więc musisz mieć jakiegoś $posta i skrypt który to zwraca. Opisz jak to dokładnie robisz bo ja nie kumam.
shemko
Działa to na zasadzie że ściągnąłem gotowy skrypt JQuery to wyświetlania okienka overlay. Skrypt wywołuje okienko i przyciemnia stronę kiedy kliknie się link: <a data-overlay-trigger href="#!">. Zawartość okienka jest określona między dwoma divami które znajdują się na tej stronie (zawartość divów uwidacznia się dopiero po kliknięciu. Inaczej są niewidoczne na stronie mimo, że się na niej znajdują).

Do tego skryptu chciałem wykorzystać z wcześniejszego projektu metodę przekazywania ID za pomocą adresu przeglądarki komendą post i get. Niestety chyba z racji, że zawartość wyświetlanego okna znajduję się na tej samej stronie co link to całość nie działa. Może da radę przekazać do okienka overlay jakoś inaczej informacje o ID?



rad11
  1. <div class="foto" style="color:#000"><a data-clicked="false" data-id="'.$wiersz['id'].'" data-overlay-trigger href="#!?id='.$wiersz['id'].'"><img src="zdjecia/'.$wiersz['photos'].'" style="margin-top:5px; margin-bottom:5px; width:250px"></a></div></div>';

  1.  
  2. $('.foto a').on('click', function(){
  3.  
  4. $(this).attr('data-clicked', 'true');
  5. $('.foto').children().attr('data-clicked', 'false');
  6.  
  7. });
  8.  


W okienku gdzie masz otiwerasz modal dobierz sie w taki sposob:
  1.  
  2.  
  3. var id = $('.foto').find('a[data-clicked="true"]').attr('data-id');
  4. console.log(id);
  5.  
  6.  
  7.  


Powinno dzialac.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.