Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Strona bez przeładowania
Forum PHP.pl > Forum > Przedszkole
nikestylex7
Prosty skrypt otwierania stron bez przeładowania lecz co zrobić żeby działało poprawnie gdy zamiast normalnego linku np: strona-glowna.php bedzie aukcje.php?p=1. Wiem że przenoszę nazwę strony w get lecz chciałbym to zmienić tak aby nadal działało bez przeładowania lecz odbierało stronę ze zmiennymi.
moje pliki
includes.php
  1. <?php
  2. $page = $_GET['p'];
  3.  
  4. if(isset($page))
  5. {
  6. if(is_dir('pages/'))
  7. {
  8. require_once('pages/'.$page);
  9. }
  10. else
  11. {
  12. echo '<p>Plik pages/ nie istnieje!</p>';
  13. }
  14. }
  15. else
  16. {
  17. require_once('pages/strona-glowna.php');
  18. }
  19. ?>

scripts.js
  1. $(document).ready(function()
  2. {
  3. $('#menu a').click(function(){
  4. var changing_page = $(this).attr('href');
  5. $('#content').hide(0 ,request);
  6.  
  7. function request()
  8. {
  9. var page = $.ajax(
  10. {
  11. url: "includes.php?p=" + changing_page,
  12. type: "GET",
  13. success: function(html)
  14. {
  15. $('#content').html(html).show();
  16. }
  17. });
  18. }
  19. return false;
  20. });
  21. });

index.php
  1. <nav id="menu">
  2. <ul>
  3. <li><a href="strona-glowna.php">&raquo; Home</a></li>
  4. <li><a href="aukcje.php?p=1">&raquo; Samochody</a></li>
  5. <ul>
  6. <li><a href="aukcje.php?p=1&a=1">&raquo; BMW</a></li>
  7. <ul>
  8. <li><a href="aukcje.php?p=1&a=1&r=3">&raquo; Sedan</a></li>
  9. <li><a href="aukcje.php?p=1&a=1&r=4">&raquo; Kombi</a></li>
  10. <li><a href="aukcje.php?p=1&a=1&r=5">&raquo; Coupe</a></li>
  11. </ul>
  12. <li><a href="aukcje.php?p=1&a=2">&raquo; Kia</a></li>
  13. <li><a href="aukcje.php?p=1&a=3">&raquo; Alfa Romeo</a></li>
  14. <li><a href="aukcje.php?p=1&a=4">&raquo; VW</a></li>
  15. <li><a href="aukcje.php?p=1&a=5">&raquo; Opel</a></li>
  16. </ul>
  17. <li><a href="aukcje.php?p=2">&raquo; Motocykle</a></li>
  18. <li><a href="aukcje.php?p=3">&raquo; Łodzie</a></li>
  19. </ul>
  20. </nav>
peter13135
Cytat
Prosty skrypt otwierania stron bez przeładowania lecz co zrobić żeby działało poprawnie gdy zamiast normalnego linku np: strona-glowna.php bedzie aukcje.php?p=1.

Z takiej strony ajax pobierze, jaką mu podasz. To czy link będzie miał jakieś dane GET, nie ma tu nic do rzeczy.

U Ciebie atrybut href to np. : "aukcje.php?p=1&a=1&r=3" - on wędruje do zmiennej changing_page.
Ajaxem pobierasz zawartość strony : "includes.php?p=" + changing_page, czyli dla w/w atrybutu href będzie to adres : "includes.php?p=aukcje.php?p=1&a=1&r=3".

Wydaje mi się, że to jest powodem tego, że skrypt nie działa jak oczekujesz. Być może się jednak mylę, bo problem/pytanie jest bardzo słabo opisany.
hondek
A nie powinieneś tam zamiast

  1. require_once()


dać



?
peter13135
A czemu uważasz, że powinien tak zrobić ? Skąd wiesz, co kryje się w includowanym pliku ?
hondek
Bo twoj request w zdarzniu 'success' oczekuje chyba html'a, więc musisz go wyechować smile.gif

Kod
success: function(html)
{
$('#content').html(html).show();
}


EDIT:
Sorka myślałem, że autor pyta,

includowanie pliku nie wyrzuci zawartosci pliku na ekran, więc w zmiennej 'html' nie będzie contentu pliku, a tego chyba oczekuje autor
peter13135
Mizerna teorie waść prawisz.

Z tego co wnioskuję z tego co autor napisał - to on includuje pliki php, a nie html/txt. Nie wiem czy wiesz, ale plik PHP (który autor usiłuje includować) prawdopodobnie właśnie coś wyświetla, czyli pewnie w nim jest jakieś echo/print/readfile.
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.