Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z cashowanym .load w jQuery
Sadamowski
post 27.04.2012, 14:47:53
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 4.07.2011

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Sinevar
post 27.04.2012, 19:11:44
Post #2





Grupa: Zarejestrowani
Postów: 40
Pomógł: 13
Dołączył: 21.02.2008

Ostrzeżenie: (0%)
-----


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(){});


Ten post edytował Sinevar 27.04.2012, 19:15:36
Go to the top of the page
+Quote Post
Sadamowski
post 3.05.2012, 10:37:30
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 4.07.2011

Ostrzeżenie: (0%)
-----


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

Ten post edytował Sadamowski 3.05.2012, 10:39:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 2.08.2025 - 11:26