Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Przekazywanie zmiennej z PHP do popup
Forum PHP.pl > Forum > Przedszkole
DerekDX
Witam, mam bazę użytkowników i chciałbym aby po kliknięciu na użytkownika wyskakiwało okienko popup z jego danymi. Stworzyłem skrypt który po podaniu ID użytkownika wyświetla jego dane. Jest tylko problem jak przenieść zmienna z ID użytkownika do okienka popup w momencie kliknięcia na przycisk.Zmienna musi być możliwa do odczytania przez PHP.

okienko popup wywoływane jest za pomocą funkcji
  1. onClick="window.open("view_user.php")
jaslanin
  1. onClick="window.open("view_user.php?id=<?php echo $id ?>")


i będziesz miał w zmiennej superglobalnej $_GET['id']
DerekDX
Zrobiłem jak napisałeś, zresztą też tak myślałem aby zrobic ale nadal nie wyskakuje mi zadne okienko

  1. function pokaz_users(){
  2. $zapytanie="SELECT * FROM `users`;";
  3. $wynik=db_czytaj($zapytanie);
  4. echo('<table>');
  5. while($wynik2=mysqli_fetch_assoc($wynik)){
  6. echo('<tr><td><a href="#" onClick="window.open("view_user.php?id=');
  7. echo($wynik2['user_id']);
  8. echo('")">');
  9. echo($wynik2['login']);
  10. echo('</a></td><td>');
  11. echo($wynik2['name']);
  12. echo('</td><td>');
  13. echo($wynik2['surname']);
  14. echo('</td><td>');
  15. echo($wynik2['email']);
  16. echo('</td><td>');
  17. echo($wynik2['telephone']);
  18. echo('</td></tr>');
  19. }
b4rt3kk
Problemem są cudzysłowy, nie może tak być:

  1. onClick="window.open("view_user.php?id=jakies_id")"


musi być tak:

  1. onClick="window.open('view_user.php?id=jakies_id')"


dodatkowo zablokowałbym też domyślną akcję dla linku:

  1. onClick="window.open('view_user.php?id=jakies_id'); return false;"
DerekDX
Przerobiłem funkcję w następujący sposób
  1. function pokaz_users(){
  2. $zapytanie="SELECT * FROM `users`;";
  3. $wynik=db_czytaj($zapytanie);
  4. echo('<table>');
  5. while($wynik2=mysqli_fetch_assoc($wynik)){
  6. ?>
  7. <tr><td><a href="#" onClick="window.open('view_user.php?id=
  8. <?php
  9. echo($wynik2['user_id']);
  10. ?>
  11. ');">
  12. <?php
  13. echo($wynik2['login']);
  14. echo('</a></td><td>');
  15. echo($wynik2['name']);
  16. echo('</td><td>');
  17. echo($wynik2['surname']);
  18. echo('</td><td>');
  19. echo($wynik2['email']);
  20. echo('</td><td>');
  21. echo($wynik2['telephone']);
  22. echo('</td></tr>');
  23. }
  24. echo('</table>');
  25. }


Wynik w przeglądarce myślę, że jest poprawny

  1. <a href="#" onclick="window.open('view_user.php?id=
  2. 28');">
  3. xxxxxx</a>
b4rt3kk
Znak przejścia do nowej linii nie jest poprawny. Nie prościej zastosować znak ucieczki?

  1. while($wynik2=mysqli_fetch_assoc($wynik)){
  2. echo('<tr><td><a href="#" onClick="window.open(\'view_user.php?id=');
  3. echo($wynik2['user_id']);
  4. echo('\');return false;">');
  5. echo($wynik2['login']);
  6. echo('</a></td><td>');
  7. echo($wynik2['name']);
  8. echo('</td><td>');
  9. echo($wynik2['surname']);
  10. echo('</td><td>');
  11. echo($wynik2['email']);
  12. echo('</td><td>');
  13. echo($wynik2['telephone']);
  14. echo('</td></tr>');
  15. }
DerekDX
Dziękuje wszystkim za pomoc, moja funkcja wygląda teraz jak podał to b4rt3kk, ale działanie jest dalekie od spodziewanego, otóż zamiast wyświetlenie wyskakującego okienka, strona przechodzi do następnej zakładki i tam wyświetla dane.
b4rt3kk
Cytat(DerekDX @ 17.10.2012, 18:01:36 ) *
Dziękuje wszystkim za pomoc, moja funkcja wygląda teraz jak podał to b4rt3kk, ale działanie jest dalekie od spodziewanego, otóż zamiast wyświetlenie wyskakującego okienka, strona przechodzi do następnej zakładki i tam wyświetla dane.


To już nie jest wina funkcji tylko przeglądarki. To co chcesz osiągnąć proponowałbym zrealizować w inny sposób, mianowicie div z display: none, po kliknięciu (ew. najechaniu) display: block, wiadomo, jeszcze position: absolute i takie tam.
frantic09
Zawsze możesz pobrać dane poprzez AJAX/JSON funkcją getJSON() i tak jak pisze b4rt3kk wyświetlić w DIVie (dodatkowo na półprzeźroczystym overlayu) z przyciskiem do jego schowania smile.gif

Funkcja getJSON:
http://api.jquery.com/jQuery.getJSON/

Do parametrów podajesz swój adres "view_user.php", zmienną id, a jak pobierze dane, to je wyświetlasz.

PS: jQuery wymagany?
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.