Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][JavaScript]AJAX reset
Forum PHP.pl > Forum > Przedszkole
neo1986kk
o co chodzi mam 2 selecty i 3 pliki php.
Dzieje sie cos takiego

liczba kulek:
jedna
dwie
trzy
cztery

po wybraniu liczby kulek (np 2) przekazuje metodą POST i Ajaxem do nastepnego pliku (2.php) który wyswietla selecta

Kolor kulek:
2 zielone
2 czerwone
2 czarne
2 żółte

po wybraniu koloru dla liczby kulek pokazuje sie komunikat: wybrałeś 2 zielone kulki, mozesz wybrac nastepne...
i tu (3.php)

<input type="button" onclick="powrot('kulki')"

  1. function powrot(divID) {
  2. var divID = document.getElementById(divID);
  3. if (XMLHttpRequestObject) {
  4. XMLHttpRequestObject.open("POST", "1.php");
  5. XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  6.  
  7. XMLHttpRequestObject.onreadystatechange = function ()
  8. {
  9. if (XMLHttpRequestObject.readyState == 4)
  10. {
  11. divID.innerHTML = XMLHttpRequestObject.responseText;
  12. }
  13. }
  14. XMLHttpRequestObject.send(null);}


No i mi powraca do widoku jednego(pierwszego) selecta, ale po wybraniu obojętnie której opcji następny select zawsze wyświetla poprzedniego posta czyli w naszym przypadku 2 czerwone 2 zielone...
Czy macie jakieś pomysły jak by to obejść?
Pozdrawiam
zegarek84
najprościej to poczytaj w necie o timestamp jako parametr get linków by każdy był unikalny - to najprostsze rozwiązanie aczkolwiek nie jedyne...
How will caching be controlled?

trochę trudniej to poczytaj komentarze w manualu do funkcji header
neo1986kk
Chodzi o to zeby zmierzyć czasy? i jeśli jest wywołay później to wyzerować POSTA? nie rozumiem chyba tego, a z nagłówkami to chyba musze jeszcze raz przeczytać o co chodzi...

XMLHttpRequestObject.setRequestHeader('Cache-Control: no-cache', 'must-revalidate');

dodałem coś takiego i teraz wogóle dalej nie idzie:(
zegarek84
trochę mało jasno napisałeś ale z tego wszystkiego na 90% masz problem z cache ale po stronie przeglądarki - potrzebujesz, by zapytania były nie zapamiętywane w przeglądarce - odpowiednie nagłówki wysyła się ale w PHP nie w JS (ajax to js...)....

najprostsza metoda to do linków dodać jakiegoś nie znaczącego unikalnego za każdym razem get'a by nie trzeba było się bawić z nagłówkami...

czyli normalnie masz link postaci:
adres/plik.php

to dajesz:
adres/plik.php?252523532 - gdzie cyferki wklepałem losowo - najlepiej do tego adresu dokleić wygenerowany timestamp w js czyli aktualny czas kożystając np. z funkcji getTime - po stronie serwera w php tego dodatkowego parametru nie musisz sprawdzać, a wykonując zapytania ajax'em za każdym razem bedziesz miał unikalne linki więc i unikalna odpowiedź nie zapamiętaną wcześniej w przeglądarce...
neo1986kk
no niestety nie pomoglo... sad.gif

teraz sie zastanowilem czy nie dlatego ze przeyslam je POSTEM
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.