画像のアップロードに問題があります。1 つのスクリプトを使用して、さまざまな HTML 要素から画像をアップロードしたいと考えています。以下は私の HTML です。
<div id="upload_1" class="image_upload" onclick="loadimg_new(this)">
<span id="uploadbutton_1" style="display:block"><?php echo Upload; ?></span>
<img id="loading_1" style="display:none;" src="images/uploading.gif" />
</div>
<div id="upload_2" class="image_upload" onclick="loadimg_new(this)">
<span id="uploadbutton_2" style="display:block"><?php echo Upload; ?></span>
<img id="loading_2" style="display:none;" src="images/uploading.gif" />
</div>
スクリプトのアップロードが使用されている間
<script type="text/javascript" src="script/ajaxupload.3.5.js" ></script>
<script type="text/javascript">
function loadimg_new(obj)
{
var uploadId = obj.id;
var imgFieldNameArray = uploadId.split('_');
var imgFieldName = imgFieldNameArray[1];
new AjaxUpload(uploadId,
{
action: 'ajaximage.php?img_id='+window.uploadId,
name: 'uploadfile',
onSubmit: function(file, ext)
{
if (! (ext && /^(jpg|png|jpeg|gif|docx|doc|xls|xlsx|ppt|pptx)$/.test(ext)))
{
alert('Only JPG, PNG, GIF, DOC, XLS or PPT files are allowed');
return false;
}
document.getElementById('uploadbutton_'+imgFieldNameArray[1]).style.display = "none";
document.getElementById('loading_'+imgFieldNameArray[1]).style.display = "block";
},
onComplete: function(file, response)
{
document.getElementById('uploadbutton_'+imgFieldNameArray[1]).style.backgroundColor="#000000"
document.getElementById('uploadbutton_'+imgFieldNameArray[1]).innerHTML = "Uploaded";
document.getElementById('uploadbutton_'+imgFieldNameArray[1]).style.display = "block";
document.getElementById('loading_'+imgFieldNameArray[1]).style.display = "none";
var imageName = response;
if(response=='error')
{
alert('ERROR-Failed to upload file. Try again.');
}
else
{
document.getElementById('myimage_'+imgFieldName).value = imageName;
}
}
});
}
これは正常に機能していますが、最初にダブルクリックしてアップロード スクリプトを実行する必要があります。ajaxuploading 関数に渡される ID を動的にしたいので、このスクリプトを「upload_1」または「upload_2」などで実行できるようにします。