Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ajax .load() Nie działa .php
Forum PHP.pl > Forum > XML, AJAX
Potar
Witajcie mam problem, dziś główkowałem z ajaxem:

  1. function example_ajax_request() {
  2. $('#example-placeholder').html('<p><img src="<?PHP echo $layout_name; ?>/ajax-loader.gif" width="220" height="19" /></p>');
  3. $('#example-placeholder').load("example.php");
  4.  
  5. }
  6.  
  7. <div id="example-placeholder">
  8. <?PHP echo $main; ?>
  9. </div>


Problem polega na tym że jak zamiast example.php dam example.htm / html działa bez problemu wczytuje noramlnie to co ma.

Ale ja chce wczytać PHP, gdyż w każdym z plików mam zapisane to co <?PHP echo $main_content; ?> chce wyświetlić, jak zrobie zwykłym hrefem i zapytaniem bez ajaxa to wczytuje tą wartość:

$main .= '';

Bez żadnego problemu, ale niestety w AJAXie jest ten problem że cały czas jest tylko GRAFIKA ładowania, przypomnę że jak zmieniłem na htm to ładuje ale wyświetla jako zwykły tekst więc nie działa, starałem się to ogarnaić jużp onad 2 godziny i nadal nie wiem co jest nie tak, że nie wczytuje mi phpa.
sazian
1)zainstaluj firebug'a
2)uruchom firebug'a
3)przełącz się na konsole i wykonaj skrypt
4)odczytaj błąd smile.gif
Potar
GET example.php
500 Internal Server Error
312ms

Dodam że przy CHMODACH nawet na 777 nie działa.
sazian
ok a czy możesz ten plik bans.php otworzyć normalnie nie ajaksowo ?
taki błąd jest np. jak jest źle.htaccess skonfigurowany
Potar
Moge jak np. poprzez index.php?topic=example to mi otwiera ten plik normalnie, bez ajaxa ale otwiera, chciałem po prostu przejść na ajax smile.gif

Mam lighhtpd, bez żadnych mod_rewrite więc nie wiem co może być przyczyną, takto otwieram i działa noramlnie ale jest problem po prostu w ajax.
sazian
więc daj
Kod
$('#example-placeholder').load("index.php?topic=example");


błąd jest spowodowany nieprawidłową konfiguracją serwera - przynajmniej takie odnoszę wrażenie
Potar
Nie działa u mnie bo ładuje mi także całe menu i panele po bokach.
sazian
ok a jak dasz w przeglądarce samo example.php (nie jak pisałeś wcześniej index.php?topic=example) to wtedy działa ?

wygląda to naprawdę dziwnie wink.gif
Potar
Oddaje błąd 500.

Wyjaśnie jak działa moja strona.

Index.php posiada include i topic (czyli include.php danych plików wywoływanych przez ?topic=XXX) tam jest także plik który importuje layout z danej lokalizacji.
Więc przy np. ?topic=example ładuje cały layout a w layout.php mam umieszczony echo '$main.'';' , w każdym z plików które są wywoływane wygląda tak

example.php

  1. <?php
  2. $main.='Test Page';
  3. ?>


a tak wygląda zapytanie w index.php:

  1. switch($_REQUEST['topic']) {
  2. case "example";
  3. $subtopic = "example";
  4. $topic = "example";
  5. include("example.php");
  6. break;


Krótko mówiąc, dobrze by było jakby zamiast .load było coś takiego jak .include wtedy by działało bez problemu.

Testowałem: $('#example-placeholder').load("<?PHP include("example.php"); ?>");

I powiem że działa, ale wczytuje od nowa całą strona i layout.php czyli menu itp.
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.