Я создаю сайт с профилями пользователей.Я нахожусь в части картины в данный момент.Когда человек загружает свое изображение без проблем, изображение будет храниться в 4 разных папках.Один для размера 25, 100, 150 и нормального размера.После этого они будут перенаправлены на ту же страницу с новым контентом.Это та часть, где им нужно обрезать свою картинку.Часть урожая работает отлично, но у меня есть проблема.Когда они покидают сайт без обрезки, только что загруженные файлы сохраняются в папках, а это не то, что мне нужно.Поэтому я проверю несколько проверок с помощью AJAX, и он разорвет уже 4 файла.Моя проблема в том, что это должно произойти только тогда, когда они покидают сайт (onbeforeunload.) Это прекрасно работает в IE, но не в Chrome. (Только два браузера я уже тестировал.)
Вотчто я делаю:
function unfinished(album,img){
var xmlhttp;
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
return xmlhttp.responseText;
}
}
xmlhttp.open("GET","incl/unfinished.php?a=" + album + "&i=" + img,true);
xmlhttp.send();
}
Функция выше получает информацию из "uncl / unfinished.php" по строке запроса.И все это работает хорошо.
Код файла unfinished.php:
session_start();
require('../dbconnect.php');
$sql = "SELECT * FROM users WHERE username='".$_SESSION['username']."'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$username= $row['brugernavn'];
}
$album = $_GET['a'];
$img = $_GET['i'];
$sourcex = "../users/".$username."/images/".$album."/x-x/".$img;
$source25 = "../users/".$username."/images/".$album."/25/".$img;
$source100 = "../users/".$username."/images/".$album."/100/".$img;
$source150 = "../users/".$username."/images/".$album."/150/".$img;
if(unlink($sourcex)){
}
if(unlink($source25)){
}
if(unlink($source100)){
}
if(unlink($source150)){
}
echo "Error 908. The picture didn't get cropped, and neither saved. Try again.";
Код AJAX и unfinished.php удаляют изображения без каких-либо проблем.Я уже проверял это.Теперь моя проблема: я запускаю код AJAX
Код должен быть запущен внутри этого:
//function warn(album,img){
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = unfinished(album,img);
}
// For Safari
return unfinished(album,img);
};
//}
Но когда я пытаюсь вернуть xmlhttp.responseText, всплывающее окно невсплывающее окно, и я не могу увидеть ответ.Но если я добавлю «Hello world» (или некоторый текст) к возвращаемому результату, как return Helloworld! ''; или e.returnValue = 'Hello world!'; вместоЗначение xmlhttp.responseText, оно всплывает и отображает сообщение.Но он не отображает xmlhttp.responseText, потому что он не запускает функцию unfinished () .
Какие-либо решения, как я могу запустить AJAX, когда пользователь покидает страницу?Если это поможет, вот код HTML:
if($_POST['where'] == "newalbum"){
$nameonalbum = $_POST['nameonalbum'];
}else{
$nameonalbum = $_POST['existingalbum'];
}
$filenamenew=time().'.gif';
?>
<body onload="warn('<?=$nameonalbum?>','<?=$filenamenew?>')">