Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript] widget - tworzenie i wstawianie
Forum PHP.pl > Forum > Przedszkole
!*!
Na jakiej zasadzie działa wstawianie różnych widgetów na strony? np. okno rozmowy z gg

  1. <script type="text/javascript" src="http://widget.gadu-gadu.pl/getCode.php?id=token"></script>


Po zapisaniu tego w html, wyświetla się okno pobrane ze strony gadu-gadu.

Jak mógłbym coś takiego osiągnąć? Aby po podaniu kodu użytkownik miał możliwość wstawienia własnego okna.
Kubofonista
Cytat(!*! @ 16.05.2009, 11:12:48 ) *
Na jakiej zasadzie działa wstawianie różnych widgetów na strony? np. okno rozmowy z gg

  1. <script type="text/javascript" src="http://widget.gadu-gadu.pl/getCode.php?id=token"></script>



Zasada działania czegoś takiego jest prosta. Wklejając ten kod na swoją stronę wykonujesz zawarty tam JavaScript. W Twoim przykładzie jest napisane
Kod
document.write("");

Co akurat nie dodaje nic. Natomiast document.write('tresc'); ma wypluć "tresc" w miejscu załączenia kodu.
Samo generowanie widgetu po stronie widget.gadu-gadu.pl to już osobna sprawa. Można wygenerować w PHP zwyczajnie

  1. <?php
  2. $tresc = 'jakisciag'; // tresc ktora osoba wstawiajaca widget otrzyma
  3. echo "document.write('{$tresc}');"; // wyswietlenie tresci w formacie dla js
  4. ?>
!*!
hmm to aż takie proste? biggrin.gif

emm a jak zczytać z czegoś takiego zmienną GET?

  1. <script type="text/javascript" src="getCode.php?zmienna=wartosc"></script>


oraz jak wstawić odpowiedni napis/obrezek przy wyłączonym JS?

  1. <?php
  2. // wrazie braku js
  3. echo '<noscript>ten tekst widzi ktoś bez obsługi JavaScript</noscript>'; exit;
  4.  
  5. //odczyt zmiennej
  6. $zmienna = $_GET['zmienna'];
  7.  
  8. $tresc = '<div style="border:1px green solid;">:D<br />zxchjzbxcjhzxbchzxc<br />zxchjzbxcjhzxbchzxc<br />zxchjzbxcjhzxbchzxc</div>';
  9. echo "document.write('{$tresc}');";
  10. ?>
Kubofonista
W przypadku tego prostego kodu który napisałem noscript zastosuj inaczej, w kodzie html zanim załączysz kod ze script src
Co do załadowania w przypadku nie obsługiwania js - widget się wogóle nie załaduje ale to chyba logiczne
!*!
Hmm nie mogę, bo jesli dam komuś do wstawienia kod

Cytat
<script type="text/javascript" src="getCode.php?zmienna=wartosc"></script>


to nie będę jeszcze wymagał aby wstawiał noscripta, dlatego chciałem to zastosować przy wykonywaniu... A odzyt zmiennej z linku podanego w <script> nie działa
Kubofonista
Cytat(!*! @ 16.05.2009, 14:13:07 ) *
Hmm nie mogę, bo jesli dam komuś do wstawienia kod
to nie będę jeszcze wymagał aby wstawiał noscripta, dlatego chciałem to zastosować przy wykonywaniu... A odzyt zmiennej z linku podanego w <script> nie działa


Spróbój taki php:
  1. <?php
  2.  
  3. //odczyt zmiennej
  4. $zmienna = $_GET['zmienna'];
  5.  
  6. $tresc = "Ze zmiennej odczytalem wartosc: {$zmienna}";
  7. echo "document.write('{$tresc}');";
  8. ?>

Co do noscripta, coś kosztem czegoś. Nawet jakbyś dał noscript w tym kodzie php, to on się nie wykona bo przy braku javascripta cały kod
Kod
<script type="text/javascript" src="getCode.php?zmienna=wartosc"></script>

będzie olany
!*!
Właśnie z odczytaniem zmiennych cos nie wychodzi, może opiszę co chcę uzyskać... daje komuś link do umieszczenia na swojej stronie <script>costam</script> dzięki czemu łaczy się z moim serwerm np. do pliku php, w który odbieram tą zienną ze znacznika <script>, obrabiam odpowiednio łacząc się z bazą, poczym wyświetlam całość dzięki document.write... aha i wszystkie dane które są w zmiennej $treść, muszą być w jednej linijce? Inaczej nie jest ona wczytywana.
Kubofonista
Cytat(!*! @ 16.05.2009, 14:28:26 ) *
Właśnie z odczytaniem zmiennych cos nie wychodzi, może opiszę co chcę uzyskać... daje komuś link do umieszczenia na swojej stronie <script>costam</script> dzięki czemu łaczy się z moim serwerm np. do pliku php, w który odbieram tą zienną ze znacznika <script>, obrabiam odpowiednio łacząc się z bazą, poczym wyświetlam całość dzięki document.write... aha i wszystkie dane które są w zmiennej $treść, muszą być w jednej linijce? Inaczej nie jest ona wczytywana.

Nie mam pomysłu czemu odczytanie zmiennej nie wychodzi. A wyświetla się "Ze zmiennej odczytalem wartosc:"?. U mnie działa poprawnie, z tym, że w src podaję pełny adres czyli w moim przypadku
Kod
<script type="text/javascript" src="http://localhost/tt.php?zmienna=wartosc"></script>

Co do treści, nie muszą być w innej lini
  1. <?php
  2. $tresc = ''; // definicja treści
  3.  
  4. $tresc .= 'abc'; // dopisanie do treści
  5.  
  6. $tresc .= 'def'; // nastepne dopisanie
  7.  
  8. echo "document.write('{$tresc}');"; // wyświetlenie
  9. ?>

Dopisania mają ".=" zamiast "=" smile.gif
!*!
Emm racja, było trzeba podać bezpośredni link do pliku. A co do treści to chodzi mi o to:

  1. <?php
  2. //poprawnie
  3. $tresc .= '<div>blebleble</div>';
  4.  
  5. //wywala cały js jakby był wyłączony
  6. $tresc .= '<div>
  7. blebleble
  8. </div>';
  9.  
  10. //tak samo jest przy próbie połaczenia z baza
  11. $query = mysql_query("...");
  12. $dane = mysql_fetch_array($query);
  13. ?>
Kubofonista
Zjadłeś pierwsze $tresc = ''; oraz końcowe echo winksmiley.jpg
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.