モーダルウィンドウで画像アップローダーを作成しました..正常に動作しています。モーダルが開き、画像をアップロードすると、1 つの画像が保存され、正常に動作します!! 次に、モーダルを閉じて再度開き、モーダルで画像を表示しようとすると、重複した画像が2〜4回ランダムに保存されるため、問題が発生します。保存されたイベントが原因であると考えられたので、preventDefault を試しましたが機能しませんでした..または、この ajax 呼び出しを完全に破棄できる方法はありますか? この問題を解決するためのあなたの意見は何ですか?
アヤックス
<script type='text/javascript'>
$(document).ready(function() {
$('#form').live('change', function(event){
event.preventDefault();
$.ajax({
type: 'POST',
url: 'uploadajax.php',
beforeSend: function(){
$('#throw').html("working..");
},
success: function(data){
$('#form').ajaxForm({
target: '#throw',
}).submit();
}
});
e.preventDefault();
return false;
});
});
サーバ側
<?php
$path = "upload/";
if ($_FILES["image"]["type"] == "") {
echo 'no file';
} else {
if ((($_FILES["image"]["type"] == "image/gif")
|| ($_FILES["image"]["type"] == "image/jpeg")
|| ($_FILES["image"]["type"] == "image/jpg")
|| ($_FILES["image"]["type"] == "image/pjpeg")
|| ($_FILES["image"]["type"] == "image/x-png")
|| ($_FILES["image"]["type"] == "image/png"))) {
if ($_FILES["image"]["type"] == "image/gif") {
$ext = 'gif';
}
if ($_FILES["image"]["type"] == "image/jpeg") {
$ext = 'jpeg';
}
if ($_FILES["image"]["type"] == "image/jpg") {
$ext = 'jpg';
}
if ($_FILES["image"]["type"] == "image/pjpeg") {
$ext = 'jpeg';
}
if ($_FILES["image"]["type"] == "image/x-png") {
$ext = 'png';
}
if ($_FILES["image"]["type"] == "image/png") {
$ext = 'png';
}
$img_url1 = rand(111111, 999999) . time() . substr(str_replace(" ", "_", 9999), 1);
$img_url1 = $img_url1;
$tmp = $_FILES['image']['tmp_name'];
if (move_uploaded_file($tmp, $path . $img_url . "." . $ext)) {
$link = $path . $img_url;
$link1 = "$link.$ext";
unset($tmp);
}
} else {
echo 'Invalid file error';
}
}
?>
モーダル ウィンドウ
<script type='text/javascript'>
$(document).ready(function() {
$('.uploadme').click(function(event){
event.preventDefault();
$.ajax({
type: 'POST',
url: 'uploadbox.php',
beforeSend: function(data){
box.dialog({
message: "Setting up upload box",
animate: false,
title: "<center>Upload Box</center>"
});
},
success: function(data){
box.hideAll()
box.dialog({
animate: false,
message: data,
title: "<center>Upload Box</center>"
});
}
});
return false;
e.preventDefault();
});
});