Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][AJAX][PHP]zmiana treści strony bez przeładowania ?
Forum PHP.pl > Forum > Przedszkole
RubiX
Witam
Szukam szukam i znaleźć nie mogę. Potrzebuję skrypt który zmienia treść strony po kliknięciu w link bez jej przeładowania np:
KLIKNIJ
Tutaj jest na dole panel :
Produkty powiązane Klienci kupili również Komentarze

Po kliknięciu w link zmienia się tekst na dole. Znalazłem 1 kod ale działa przez xml i po wczytaniu pliku nie pobiera mi zmiennych i nie mogę przez to operować na php (wczytuje tylko sam tekst z pliku).
Czy spotkał się ktoś z czymś takim i może mnie naprowadzić ?
drake88
mowa oczywiście nt. simple ajax tutorial - wujek google służy pomocą ;]
http://www.google.pl/#hl=pl&source=hp&...da125088bfb5519
RubiX
jednak trafiłem na to:
http://www.queness.com/post/328/a-simple-a...-with-jqueryphp

tylko mam pytanie czy jak ktoś w przeglądarce ma wyłączony js to nie będzie mu działać ?
WebKing
  1. function Link(div, tar) {
  2. $(div).load(tar);
  3. }

  1. <a href="java script: Link('#main', 'plik.php')">Link 1</a>


*java script - zamień na javascript
drake88
Cytat(RubiX @ 13.09.2009, 13:24:54 ) *
tylko mam pytanie czy jak ktoś w przeglądarce ma wyłączony js to nie będzie mu działać ?


hm, no raczej nie...
RubiX
WebKing dzięki Twoje najlepsze tylko powiedzcie jeszcze jak zrobić żeby na starcie pierwszy plik już był wczytany ?
To pewnie będzie trzeba dodać coś do tego ?

  1.  
  2. function Link(div, tar) {
  3.  
  4. $(div).load(tar);
  5.  
  6. }
WebKing
  1. $(document).ready(function(){
  2. Link("#main", "jakiś_plik");
  3. });
RubiX
No niee.. albo coś źle zrobiłem albo ten skrypt nie pasuje.
Otóż załadowany plik do diva nie czyta mi zmiennych zapisanych w pliku który zawiera tego diva.
Np index ładuje div (np. plik s1.php) no i załadowany w diva do index.php kod z s1.php nie czyta mi zmiennych z pliku index.php i polskie znaczki sie krzaczą... coś źle zrobiłem czy ten skrypt jquery tak ma ?
megawebmaster
Plik s1.php jest wykonywany zupełnie osobno i nie ma najmniejszego połączenia z plikiem index.php. Pomyśl - ładujesz index.php (na serwerze on się wykonuje, wysyła odpowiedź i się wyłącza), a potem ładujesz s1.php (który nie ma powiązania z index.php, chyba że dasz include()).
CyberDuck_
Ja Ci opisze tutaj dokladnie jaki ja sposob stosuje i
moze Ci sie przyda.
Robisz tak :
1. w miejscu gdzie ma byc podmieniana zawartosc, wyswietlana
za kazdym razem inna zawartosc strony bez przeladowania
umieszczasz :
  1. <div id='changeMeOknoRozm'></div>

Miedzy znaczniki div rzecza jasna mozesz zaladowac dowolna
wartosc startowa, ktora pozniej zostanie zmieniona jesli w dowolnym
momencie bedziesz chcial to zrobic. W nazwie id mozesz umiescic
dowolna wartosc. Dzieki temu mozesz nawet kilka blokow na jednej
stronie podmieniac w dowolny sposob.

2. Robisz sobie ramke w dowolnym miejscu na stronie o wielkosci
1px x 1px dzieki czemu nie bedzie praktycznie widoczna :
  1. <iframe name='czat_ram_okno_roz' marginwidth='0' marginheight='0' align='top' border='0' frameborder='0' width='1' height='1' src='czat_ramka_okno_rozm.php' scrolling='no'></iframe>


3. Teraz w tym skrypcie, ktory bedzie ladowany do ramki jesli chcesz
cos w nim podmienic to piszesz :
  1. echo "<script language=\"JavaScript\">";
  2. echo "parent.document.getElementById(\"changeMeCHATownicy\").innerHTML = \"$lista\";";
  3. echo "</SCRIPT>";

W zmiennej lista mozesz zaladowac dowolna zawartosc jaka ma sie
znalezc miedzy divami.

Mam nadzieje, ze wiesz jak sie pisze linki z wywolaniem ramki :
  1. <a href='skrypt_obslugujacy_ramke.php' target='czat_ram_okno_roz'>cos</a>

Niezaleznie od tego jak wywolasz ramke i co w niej obliczysz to po wywolaniu tego
kawaleczka JavaScript zaladujesz na strone dowolna zawartosc bez przeladowywania.

Tutaj masz przyklad :
http://www.bluelan.pl/przyklad_gd/zawartosc.php

Moze malo elegancko, ale skrypt doslownie wyglada tak :
Plik 'zawartosc.php' :
  1. <?php
  2.  
  3. echo "<a href='zawartosc_ramka.php?opcja=1' target='ramka'>tekst1</a>, ";
  4. echo "<a href='zawartosc_ramka.php?opcja=2' target='ramka'>tekst2</a>, ";
  5. echo "<a href='zawartosc_ramka.php?opcja=3' target='ramka'>tekst3</a>, ";
  6. echo "<a href='zawartosc_ramka.php?opcja=4' target='ramka'>tekst4</a>, ";
  7. echo "<a href='zawartosc_ramka.php?opcja=5' target='ramka'>Grafika</a>";
  8.  
  9. echo "<br><br><div id='changeMe' align='center'>zawartosc poczatkowa</div>";
  10.  
  11.  
  12. echo "<iframe name='ramka' marginwidth='0' marginheight='0' align='top' border='0' "
  13. ."frameborder='0' width='1' height='1' src='zawartosc_ramka.php' scrolling='no'></iframe>";
  14. ?>

Plik 'zawartosc_ramka.php' :
  1. <?php
  2.  
  3. if ($_GET['opcja'] == '1') {
  4. $lista = 'Pierwszy tekst';
  5. }
  6. if ($_GET['opcja'] == '2') {
  7. $lista = 'Drugi tekst';
  8. }
  9. if ($_GET['opcja'] == '3') {
  10. $lista = 'Trzeci tekst';
  11. }
  12. if ($_GET['opcja'] == '4') {
  13. $lista = 'Czwarty tekst';
  14. }
  15. if ($_GET['opcja'] == '5') {
  16. $lista = "<img border='0' src='5.jpg'>";
  17. }
  18. if ($lista != '') {
  19. echo "<script language=\"JavaScript\">";
  20. echo "parent.document.getElementById(\"changeMe\").innerHTML = \"$lista\";";
  21. echo "</SCRIPT>";
  22. }
  23. ?>
Wojciechowy
mam pytanie, bo się męcze z tym tongue.gif

w loader.php wrzuciłem do case'ów coś takiego (żeby na wejscie juz coś bylo widać)

  1. default: { include('0.php');break; }


i nic, normalnie jak robię stronę w php i wrzucam coś takiego to wszystko działa, a tu nic działa, w ogóle nie łapie. czym to jest spowodowane i jak zrobić, żeby działało? smile.gif

cały loader.php wyglada tak:

  1. <?
  2.  
  3. switch($_GET['page']) {
  4.  
  5.  
  6. case "#page1": { include('1.php');break; }
  7. case "#page2": { include('2.php');break; }
  8. case "#page3": { include('3.php');break; }
  9. case "#page4": { include('4.php');break; }
  10. default: { include('0.php');break; }
  11.  
  12. }
  13.  
  14. echo $page;
  15. ?>
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.