私は一連の画像を含む Web サイトで作業しており、最初の画像はアバターのようなものです。アバター (1 番目の画像) を変更したい場合、最初の画像の名前を新しい画像に置き換えます。アバターとして使用します。私は ajax 関数でこれを行うので、それを行った後にページを更新する必要はありません。
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $pic_name, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $temp_name);
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $avafile, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $pic_name);
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $temp_name, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $avafile);
私の問題は、それを行った後、divから画像を削除し、新しい順序で再度追加することですが、ブラウザは画像をどこかに保存し、それらをリロードせず、同じ順序で表示されると思います. ページを更新した後でのみ、正しい順序で表示されます。ブラウザに画像を再度アップロードさせる解決策のようなものはありますか?
よろしくお願いします、ダニエル!
編集:これは ajax 関数です:
function avaPic(offer_id, pic_name, onFinish) {
var request;
if(window.XMLHttpRequest)
request = new XMLHttpRequest();
else
request = new ActiveXObject("Microsoft.XMLHTTP");
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200) {
onFinish();
}
}
request.open("GET", "php/script.php?action=avaPic&offer_id=" + offer_id + "&pic_name=" + pic_name, true);
request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
request.send();
}
これはphpです:
if($action == "avaPic") {
$offer_id = $_GET["offer_id"];
$pic_name = $_GET["pic_name"];
$filearray = getDirectoryList("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/");
$avafile = $filearray[0];
$temp_name = "temp.jpg";
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $pic_name, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $temp_name);
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $avafile, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $pic_name);
rename("C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $temp_name, "C:/wamp/www/invest/Coded/oferte/" . $offer_id . "/" . $avafile);
}
onFinish関数で、画像が新しい順序で再度並べ替えられることを期待してdivを更新しますが、ページを更新するまで、以前と同じように表示されます
ブラウザに画像を強制的にリロードさせる方法を見つけました。
<div>
<img src="img1.jpg" />
<img src="img2.jpg" />
<img src="img3.jpg" />
</div>
これの代わりに、ブラウザーに画像をリロードさせるために、時間パラメーターを使用して html コードを生成する必要があります。このような<img src='"img1.jpg?" + d.getTime()' />