Przeładowanie skryptu problem z odświeżaniem

0

Witam serdecznie,

Niestety ale jestem jeszcze bardzo ciemny na temat JS a znalazłem sobie ładowanie pliku do strony ( bez przeładowywania całej strony ) .
Tylko, że teraz mam mały problem, ponieważ:

Stworzyłem sobie 2 przyciski :
1- pokazujący zawartość pliku (pokaż)
2- generator kodu ( generuj )

Przy pierwszym kliknięciu pokaż wszystko hula dobrze, jednak jak kliknę pokaż, generuj i pokaż to nie wyświetlą się nowe wartości.

Dodatkowo zwróciłem uwage, że przeglądarka tworzy mi ciastko o nazwie :
PHPSESSID .

Dodam, że w pliku pokaż zapisywane są losowe zdjęcia.

przedstawiam poniżej plik js :

     <script language = "javascript">
    var XMLHttpRequestObject = false;
     
    if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }
     
    function getData(dataSource, divID)
    {
    if(XMLHttpRequestObject) {
    var obj = document.getElementById(divID);
    XMLHttpRequestObject.open("GET", dataSource);
     
    XMLHttpRequestObject.onreadystatechange = function()
    {
    if (XMLHttpRequestObject.readyState == 4 &&
    XMLHttpRequestObject.status == 200) {
    obj.innerHTML = XMLHttpRequestObject.responseText;
    }
    }
     
    XMLHttpRequestObject.send(null);
    }
    }
    </script>
    <table border="0" width="600">
    <tr>
    <td align="center">
    <input type = "button" value = "Pokaż" onclick = "getData('./pokaz.php', 'wyswietl')">
    </td>
    <td align="center">
    <input type = "button" value = "Generuj" onclick = "getData('./generuj.php', 'wyswietl')">
    </td>
     
    </tr>
    </table>
    <div id="wyswietl"></div>

A więc plik:

pokaz.php zawiera czysty kod html.

<table border='Nie'><tr><td><a href='http://localhost/pan/go/odsylacze/1.php'><img src='http://localhost/pan/go/img/aukcja1/tytul.jpg' border='0'><br><img src='http://localhost/pan/go/img/aukcja1/zdjecie.jpg' border='0' width='200'><br><img src='http://localhost/pan/go/img/aukcja1/cena.jpg' border='0'> <br></a></td></tr><tr><td><a href='http://localhost/pan/go/odsylacze/2.php'><img src='http://localhost/pan/go/img/aukcja2/tytul.jpg' border='0'><br><img src='http://localhost/pan/go/img/aukcja2/zdjecie.jpg' border='0' width='200'><br><img src='http://localhost/pan/go/img/aukcja2/cena.jpg' border='0'> <br></a></td></tr></table>

plik generuj.php tak naprawde podmienia zdjęcia na serwerze

poniżej przedstawiam kod który to czyni.

     function zap_tyt_i_link(){
     
    include("./odsylacz.php");
    $this->losowanie();
    $font = $this->czcionka($this->czcionka_tytulu);
     
    $kolor_tyt = $this->kolor($this->kolor_tytulu);
    $kolor_tla = $this->kolor($this->kolor_tla_tytulu);
     
     
    $nrid = array();
     
    for($i=0;$i<$this->ilosc_aukcjidw;$i++){
     
    $nr=$i+1;
    $nrid[] .= $this->dane_aukcji['user-item-list'][$this->liczba_losowa[$i]]->{'it-id'};
     
    // ponizej zapis odsylacza
    $link = "http://allegro.pl/show_item.php?item=".$nrid[$i];
    odsylacz($link, $nr);
    // koniec zapis odsylacza
     
    $tytul = $this->dane_aukcji['user-item-list'][$this->liczba_losowa[$i]]->{'it-name'};
    $t_t = imagettfbbox($this->rozmiar_tytulu, 0, $font, $tytul);
    $szer = $t_t[2] / $this->ile_rzedow;
    $szerokosc = round($szer);
    $tablica = explode(" ", $tytul);
    $elementy = count($tablica);
     
     
    // rozdziela text na daną ilość kolumn
    $kolumna = 0;
    for($j=0;$j<$elementy;$j++){
    $spr_text = imagettfbbox($this->rozmiar_tytulu, 0, $font, $text[$kolumna]);
     
    if($spr_text[2]<$szerokosc){
    $text[$kolumna] .= $tablica[$j]." ";
    }
     
    else{
    $kolumna++;
    $j--; // po to by uwzględniało w kolejnej kolumnie ostatni wyraz który jest sprawdzany
    }
    }
     
    // koniec rozdzielania textu
    //zapis na obrazek
     
    $im = imagecreate($this->rozmiar_zdjecia, 35);
    $background_color = imagecolorallocate($im, $kolor_tla[0], $kolor_tla[1], $kolor_tla[2]);
    $text_color = imagecolorallocate($im, $kolor_tyt[0], $kolor_tyt[1], $kolor_tyt[2]);
     
     
    for($k=0;$k<count($text);$k++){
    $t[$k] = imagettfbbox($this->rozmiar_tytulu, 0, $font, $text[$k]);
    $x[$k] = ($t[$k][0] + (imagesx($im) / 2) - ($t[$k][4] / 2))+1;
    $sum += $t[$k][5];
    }
     
    for($l=0;$l<count($text);$l++){
    if (count($text)<1) $dod = 0;
    elseif(count($text)>1 && $l == 0) $dod = -2;
    else $dod = 2;
    $y[$l] = ((((imagesy($im) + $sum)/2) + $t[$l][0] ) - ( $t[$l][5] * ($l +1) )) + $dod;
    imagettftext($im , $this->rozmiar_tytulu, 0, $x[$l], $y[$l], $text_color, $font, $text[$l]);
    }
     
     
     
     
    $fot = '../img/aukcja'.$nr.'/tytul.jpg';
    imagejpeg($im, $fot, 100);
    imagedestroy($im);
    $sum = 0;
    $ilosc_kol = count($text);
    for($e=0;$e<$ilosc_kol;$e++){
    unset( $text[$e] );
    unset( $y[$e] );
    unset( $x[$e] );
    }
     
    //koniec zapisu
     
     
    }
     
    $this->nrid = $nrid;
     
    }

Czy jest w stanie ktoś pomóc?

0

czyli to podmienia pliki na serwerze pod tymi samymi nazwami? a skąd przeglądarka ma się spodziewać, że tam coś nowego jest? wymusić przeładowanie z pominięciem cache z poziomu javascriptu nie bardzo się da, możesz tylko dopisywać do swoich obrazków parametry GET - wtedy przeglądarka ściągnie obrazek od nowa.
czyli:

$('#wyswietl img').each(function(){ // dla kazdego obrazka w #wyswietl
  var src=$(this).attr('src'); // wybiera src
  if (src.indexOf('?')==-1) { // jezeli src nie zawiera pytajnika (nie ma jeszcze paramterow GET)
    $(this).attr('src', src+'?1'); // dodaje ?1 do src, np http://sciezka/obrazek.jpg?1
  }
  else { // jest pytajnik
    $(this).attr('src', src+'1'); // dodaje kolejna jedynke do src, np http://sciezka/obrazek.jpg?11
  }
});
0

Witam serdecznie,

bardzo dziękuje za pomoc.
Nie mam aktualnie dostępu do mojego kodu, ale czy móglbyś mi napisać 2 rzeczy:

  1. czy ten skrypt jest gotowy?
  2. czy nalezy go wkleić pomiędzy <script> ?
0

sorki za pytanie 2 poprawie je

  • gdzie należy to wkleić ( tzn jak to wkleić w obrazek? )

1 użytkowników online, w tym zalogowanych: 0, gości: 1