Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP]Przekazywanie zmiennej z PHP do popup
DerekDX
post
Post #1





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

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


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")
Go to the top of the page
+Quote Post
jaslanin
post
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


  1. onClick="window.open("view_user.php?id=<?php echo $id ?>")


i będziesz miał w zmiennej superglobalnej $_GET['id']
Go to the top of the page
+Quote Post
DerekDX
post
Post #3





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

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


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. }
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


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;"
Go to the top of the page
+Quote Post
DerekDX
post
Post #5





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

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


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>
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


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. }
Go to the top of the page
+Quote Post
DerekDX
post
Post #7





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 23.04.2010

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


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.

Ten post edytował DerekDX 17.10.2012, 17:04:55
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #8





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


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.
Go to the top of the page
+Quote Post
frantic09
post
Post #9





Grupa: Zarejestrowani
Postów: 42
Pomógł: 6
Dołączył: 7.03.2011
Skąd: Kraków

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


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 (IMG:style_emoticons/default/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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 17:35