Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX] Przekierowanie zawartości do DIV
Forum PHP.pl > Forum > Przedszkole
foqz
Witam!

Pierwszy temacik więc proszę o wyrozumiałość.



Borykam się z następującym problemem (mam nadzieję nie dla każdego), chciałbym żeby kliknięcie linku powodowało załadowanie zawartości strony do której odnosi sie link do konkretnego DIV-a, pozostała zawartość strony (mam tu na mysli inne pojemniki itd.) pozostaje statyczna (bez zmian).



Z góry dziękuję za wszelkie sugestie.
skowron-line
Kod
<html>
<head>
<script type="text/javascript" src="advajax.js"></script>
<script type="text/javascript">

function loadPage( page )
{
    advAJAX.get({
        url: page,
        onSuccess : function( obj )
        {
            document.getElementById( 'oSpan' ).innerHTML = obj.responseText;
        }
    });
}
</script>
</head>
<body>
<a href="javascript:loadPage( 'abc.php' );">abc.php</a>
<span id="oSpan"></span>
</body>
</html>


po więcej informacji odsyłam do google i http://web.archive.org/web/20071023225209/...us/index-pl.htm no i oczywiście forum gdzie jest sporo tematów o advAjax.
foqz
Dzięki za zainteresowanie, jest to ciekawe rozwiązanie, ale ma dla mnie dwie zasadnicze wady:
1. Brak możliwości cofniecia przeładowania za pomocą buttona "wstecz" przeglądarki;
2. Problem z kodowaniem znaków - nie znalazłem jednoznacznego rozwiązania na forum (koduje w ISO);

Czy można rozwiązać to w inny sposób?
Powiedzmy, że div do którego chcę załadować zawartość jest zapisany w osobnym pliku i dolączony za pomocą "require_once".
Interesuje mnie coś w działaniu przypominającego <a href="*" target="**".....ale przekierowanie do div-a.
skowron-line
Sposobów jest kilka
np.

  1. <?php
  2. echo'<a href="index.php?site=main">main</a>';
  3.  
  4. echo'<div>';
  5.    if( isset( $_GET[ 'site' ] ) and !empty( $_GET[ 'site' ] ))
  6.    {
  7.        $file = htmlspecialchars( $_GET[ 'site' ] ) .'.php';
  8.        if( @file_exists( $file ))
  9.        {
  10.            include( $file );
  11.        }else{
  12.            echo 'nie ma takiej strony';
  13.        }
  14.    }else{
  15.        include_once( 'default.php' );
  16.    }
  17. echo</div>;
  18. ?>

*pisane z palca.

Temat: AJAX_Czyli_artykul_na_temat_polskich_znakow_
ucho
1. Na to rozwiązania chyba nikt jeszcze nie wymyślił - bo niby jak przycisk wstecz miałby działać skoro wciąż jesteś na dokładnie tej samej stronie od której zacząłeś przeglądanie witryny ? smile.gif
2. Osobiście nigdy problemów nie miałem, ani kiedy strona było w iso, ani kiedy była w utf więc nic nie doradzę.
3. Chyba pływające ramki (iframe) to jedyna alternatywa, ale są "niekoszerne" smile.gif
foqz
skowron-line - czytałem ten temacik na temat kodowania, szukam prostszego rozwiązania =) ale jak nic nie znajdę to przemyślę, sposób który mi wysłałeś dotyczący przeładowania zaraz przeanalizuję....

ucho - ramki nie wchodzą w grę tongue.gif




....jak coś wywalczę będzie edit, tymczasem...
erix
Cytat
1. Na to rozwiązania chyba nikt jeszcze nie wymyślił - bo niby jak przycisk wstecz miałby działać skoro wciąż jesteś na dokładnie tej samej stronie od której zacząłeś przeglądanie witryny ?

A sprawdziłeś? snitch.gif Bo ja tak i działa wyśmienicie: jQuery history plugin - http://www.mikage.to/jquery/jquery_history.html

Cytat
Interesuje mnie coś w działaniu przypominającego <a href="*" target="**".....ale przekierowanie do div-a.

jQuery Ajaxify - http://maxblog.me/ajaxify/

Cytat
skowron-line - czytałem ten temacik na temat kodowania, szukam prostrzego rozwiązania =) ale jak nic nie znajdę to przemyślę, sposób który mi wysłałeś dotyczący przeładowania zaraz przeanalizuję....

Krótka piłka - strona i skrypt mają te same kodowania?
skowron-line
Cytat(erix @ 19.01.2009, 17:33:33 ) *
A sprawdziłeś? snitch.gif Bo ja tak i działa wyśmienicie: jQuery history plugin - http://www.mikage.to/jquery/jquery_history.html

Sorki za OT ale link pyszny, rozwiazanie genialne.
foqz
Cytat
Krótka piłka - strona i skrypt mają te same kodowania?

Moim zdaniem to nie istotne czy skrypt też jest w ISO, bo dane wyciągane z bazy są źle kodowane po przeładowaniu za pomocą (aktualnie) jquery
Przed użyciem ajaxa wyciągane z bazy dane były właściwie wyświetlane, teraz dane wyciągane z bazy do div-a "load" maja złe kodowanie, pozostała część strony jest dobrze kodowana.
Podałbym link ale piszę na localhoście :/



erix - dzięki za wskazanie jquery, myślę że dokładnie tego szukałem  =) wielkie dzięki, teraz powalczę jeszcze z kodowaniem tongue.gif

Cytat
......i działa wyśmienicie: jQuery history plugin.....

niestety pod IE7 nie działa wyśmienicie, erix - sprawdzałeś? tongue.gif
erix
Cytat
niestety pod IE7 nie działa wyśmienicie, erix - sprawdzałeś?

Tak, sprawdzałem, działa bez problemów pod IE7. winksmiley.jpg
foqz
Cytat(erix @ 19.01.2009, 22:38:16 ) *
Tak, sprawdzałem, działa bez problemów pod IE7. winksmiley.jpg


W takim razie nie wiem czemu, u mnie po kliknięciu linku zmienia się w pasku adresu, ale oczywiście zawartość się nie pojawia. Pojawia się dopiero po kliknięciu "odśwież". Później użyłem "wstecz", to wrócił do "strony domowej". W FF i Opera nie ma problemów.
DirectPL
Przez jQuery bardzo prostym sposobem;
Ładowanie:
  1. var strona = "ttp://www.twojastrona.pl/strona2.html";
  2. $("#divDocelowy").load(strona+" #divZrodlo");
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.