Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Połączenie PHP z JS
klakier1991
post 19.05.2011, 14:02:53
Post #1





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

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


Witam,
Z góry piszę, że jestem początkujący zacząłem przygodę z PHP około 3tyg temu.
Stworzyłem galerię w PHP i teraz chciałbym użyć jakiejś galerii z JavaScriptu.
Niestety napotkałem na problem mianowicie, Galeria z .JS wczytuje zdjęcia na sztywno a ja chciałbym by były pobierane dynamicznie z
galerii stworzonej już wcześniej w PHP lub z bazy danych.
Galeria w PHP wygląda tak, że z bazy danych pobiera wszystkie odnośniki do zdjęć danego użytkownika i wypisane są za pomocy pętli.
  1. for ($i=0; $i <$num_results; $i++) {
  2. $row = mysql_fetch_array($result);
  3.  
  4. $photolocation = 'http://www.raceonline.cba.pl/images/'.$id.'/'.$row['cover'];
  5.  
  6. $photo = "<img src='$photolocation' />";
  7.  
  8. print " ";
  9.  
  10.  
  11. print $photo;
  12.  
  13. }


$id = id użytkownika
$row['cover'] = odnośnik do zdjęcia np. 23.jpge

a JavaScript wygląda tak

var JaS = {
// Customization parameters
imagePath : "pictures/",
images : [

["1.jpg", "Bat bridge in Austin", "Bridge"],
["2.jpg", "Blossoming tree", "Tree"],
["3.jpg", "Bat bridge from below", "Bridge"],
["4.jpg", "Birds", "Birds"]

],

Chciałbym stworzyć galerię JS by była dynamiczna w zależności na jakiego użytkownika się wchodzi stąd moje pytanie czy takie coś jest możliwe.
Podejrzewam, że trzeba jakoś zaincludować PHP do JS lub na odwrót.
Proszę o jakieś wskazówki z góry dzięki.
Go to the top of the page
+Quote Post
CuteOne
post 19.05.2011, 14:16:03
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Mały przykład:

  1. <?php
  2.  
  3. $img = 'image.jpg';
  4.  
  5. echo '<script type="text/javascript">
  6. var img = "images/'.$img.'";
  7. alert(img);
  8. </script>';
  9. ?>


Ten post edytował CuteOne 19.05.2011, 14:17:33
Go to the top of the page
+Quote Post
klakier1991
post 19.05.2011, 19:10:23
Post #3





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

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


Przeczytałem kilka postów na ten temat ale żaden nie był do końca opisany.
Mogli byście mnie naprowadzić jak zrobić by zmienna z PHP została odczytana w pliku .js
Próbowałem pokombinować ale w ogóle nie znam się na języku JavaScript.
Z tego co przeczytałem to z PHP wysyłam zmienną do pliku po przez:
  1. echo "<script type="text/javascript"></script>

ale gdzie wpisuje nazwę do jakiego pliku podejrzewam że tak:


  1. echo "<script type="text/javascript src="gdzies.js"></script>

Ale nie mam zielonego pojęcia jak odebrać i wyświetlić tą zmienną w pliku .js
Nie prosił bym o pomoc gdybym znał coś z języka JS dopiero jestem w trakcie uczenia PHP.

Ten post edytował klakier1991 19.05.2011, 19:15:11
Go to the top of the page
+Quote Post
kulmen
post 20.05.2011, 10:50:12
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 1
Dołączył: 20.05.2011

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


Po pierwsze języki PHP i javascript to byty z dwóch różnych planet - PHP działa wyłącznie po stronie serwera javascript po stronie klienta. Dlatego nie istnieje możliwość bezpośredniego przekazywania sobie zmiennych przez te języki. Jednak dzięki temu, że PHP generuje po prostu kod do wyświetlenia przez przeglądarkę, jak również dzięki temu, że javascript może wywołać dowolny adres, istnieją pewne formy komunikacji. Ale na pewno nie możesz zrobić jednej rzeczy - do pliku javascript nie da się przekazać czegokolwiek z PHP. W drugą stronę OK - możesz w pliku PHP wygenerować kod javascript. W pliku js masz:

var JaS = {
// Customization parameters
imagePath : "pictures/",
images : [

["1.jpg", "Bat bridge in Austin", "Bridge"],
["2.jpg", "Blossoming tree", "Tree"],
["3.jpg", "Bat bridge from below", "Bridge"],
["4.jpg", "Birds", "Birds"]

],
....
}

czyli obrazki znajdują się w własności images obiektu JaS. Zatem w pliku PHP możesz wygenerować kod javascript zmieniający tą własność np:
  1. <script type="text/javascript">
  2. JaS.images = [ <?php foreach($obrazki as $o): ?>
  3. ["<?php echo $o['nazwa_pliku']; ?>", "<?php echo $o['opis_pliku']; ?>", "<?php echo $o['atrybut_alt']; ?>"],
  4. <?php endforeach; ?>
  5. ];


Gdzie $obrazki to dwuwymiarowa tablica PHP zawierająca nazwy, opisy itp. obrazków, które chcesz wyświetlić. Aby nie komplikować kodu darowałem sobie sprawdzanie czy jest to ostatni element tablicy, Ty jednak musisz to zrobić bo wygenerowany kod będzie miał postać:

["aaa1","bbb1", "ccc1"],
["aaa2","bbb2", "ccc2"],
["aaa3","bbb3", "ccc3"],
...

czyli będzie miał przecinek po każdym elemencie tablicy. Tak być powinno poza ostatnim elementem. Jeśli po ostatnim elemencie też będzie przecinek, kod javascript nie będzie Ci działał.

Ten post edytował kulmen 20.05.2011, 11:01:01
Go to the top of the page
+Quote Post
klakier1991
post 21.05.2011, 12:54:43
Post #5





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

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


Wielkie dzięki, pokombinowałem troszkę, zrobiłem tak jak napisałeś ale nie mam pojęcia jak teraz wyświetlić tą galerię mam plik html
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/DTD/strict.dtd">
  2.  
  3. <html lang="en">
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. <title>JaS - JavaScript Slides</title>
  6. <script type="text/javascript" src="js/jas.js"></script>
  7. <style type="text/css">
  8. @import url("css/jas.css");
  9. </style>
  10. <!--[if lt IE 7]>
  11. <link rel="stylesheet" href="css/ie.css" type="text/css">
  12. <![endif]-->
  13. </head>
  14.  
  15.  
  16. <div id="container">
  17.  
  18. <h1>JaS</h1>
  19.  
  20. <div id="jas-frame">
  21. <div id="jas-tags">
  22. <h3>Tags:</h3>
  23. <p>
  24. <input type="checkbox" id="jas-select-all-tags" checked="checked">
  25. <label for="jas-select-all-tags">Select all</label>
  26. </p>
  27. </div>
  28. <div id="jas-container">
  29. <img id="jas-image" src="images/1.jpg" alt="">
  30. <h2 id="jas-image-text">Bat bridge in Austin</h2>
  31. </div>
  32. </div>
  33.  
  34. <ul id="navigation-controls">
  35. <li><a id="previous-image" href="index.htm">Previous</a></li>
  36. <li id="image-counter">1 / 12</li>
  37. <li><a id="next-image" href="index.htm">Next</a></li>
  38. <li class="slideshow-item">
  39. <a id="start-slideshow" href="index.htm">Start slideshow</a>
  40. <a id="stop-slideshow" href="index.htm">Stop slideshow</a>
  41. </li>
  42. </ul>
  43.  
  44. </body>
  45. </html>

i nie mam pojęcia jak to połączyć przydały by się jakieś wskazówki

Ten post edytował klakier1991 21.05.2011, 14:33:35
Go to the top of the page
+Quote Post
everth
post 21.05.2011, 13:22:44
Post #6





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Cytat
Po pierwsze języki PHP i javascript to byty z dwóch różnych planet - PHP działa wyłącznie po stronie serwera javascript po stronie klienta

Ehe, źródła poproszę.

@klakier1991
Zakoduj to funkcją json_encode() i osadzaj bezpośrednio w JS. JSON to praktycznie kod JS. Nie będziesz musiał użerać się z przecinkami i klamrami.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
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: 8.07.2025 - 09:09