Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z cashowanym .load w jQuery
Forum PHP.pl > Forum > Po stronie przeglądarki
Sadamowski
Witam,

mam dziwny problem, który pasuje do wszystkich tematów i w zasadzie nie jestem pewien gdzie go umieścić. Ale może do rzeczy.

wykonuje następujący kod:

loaduje jQuery stronę do jakiegoś pojemnika <div> , polecenie wygląda następująco:

$("#submaintext_bdw").load(encodeURI("../../actionfiles/php/scripts/test.php?course_id=" + id), function() {});

wartosc id jest jakos tam generowana, jej wartosc sprawdzam alertując ją - w tym przypadku po kliknieciu na <tr> tabeli zczytuję jej wartosc value

zawartość pliku test.php wygląda tak:
  1. <?php
  2.  
  3. ?>




problem polega na tym, że po kliknięciu na wszystkie <tr> wyswietla się miejsce siedzenia pliku. No dobra, a teraz chciałbym wyświetlić inne coś: zmieniam zawartośc pliku test.php na coś takiego:
  1. <?php
  2. print_r($_GET);
  3.  
  4. ?>

I znowu klikam na <tr> tabeli i tu niespodzianka, zamiast zobaczyć nowa zawartość dostaje spowrotem ścieżkę dostępu questionmark.gif? Ciekawe jakim cudem questionmark.gif Ok, restartuje Przegladarkę i server i dalej k.. to samo - dalej zamiast zawartosci GET dostaje dalej scieżkę.

Co jest grane, prosze uprzejmie o pomoc!!!
Środowisko:
PHP 5.2.10
Apache 2.2.21
MSSQL 2008 (to akurat niewazne ale co tam)
IE 9
najnowszy jQuery
Sinevar
Hmm no dziwne...

A jakbyś spróbował wywalić to session_start(), bo w sumie nie wiem po co Ci to tam. I zamiast print_r($_GET), dać echo $_GET['course_id']; ?

A jeśli wciąż coś nie tak, to stwórz dwa skrypty php: test.php i test2.php, a następnie spróbuj podpiąć pod tego load(). Imho takie coś na bank powinno wstrzyknąć odpowiedni kod do znacznika.

A tak w ogóle, to nie lepiej byłoby zrobić to tak ? (tylko pamiętaj teraz, że load() przekaże parametr course_id w tablicy $_POST a nie $_GET)
  1. $("#submaintext_bdw").load("../../actionfiles/php/scripts/test.php", {course_id: id}, function(){});
Sadamowski
No dobra, to już wiem ja sobie z tym poradzić:

1. po pierwsze: Sinevar, dzieki za odpowiedz.
2. Sprawa jest istatnie dosyć dziwna aczkolwiek do przeskoczenia. Mozna tu zastosowac w zasadzie dwa rozwiązania:
ALBO
wprowadzamy jakąś zmienną losową np: var rand_helper i wstawiamy go w requesta: w takim przypadku (oczywiście jesli zmienna bedzie odpowiednio skomplikowana) za kazdym razem gdy wywałamy load,
$("#submaintext_bdw").load(encodeURI("../../actionfiles/php/scripts/test.php?course_id=" + id +"&rand_helper=" + rand_helper), function() {});

bedziemy odnosić się do innego adresu i problem z ciągnięciem zawartości z cashu minie bezpowrotnie.

ALBO na sam początek skryptu ( wrzucamy):
$.ajaxSetup({cache: false});
i w tym przypadku problem tez znika

pozdro
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.