有一个带有订单的网站,其中每个订单都附有(图片),我们可以看到,但不能删除。(因为使用PrettyPhoto)也使用Fat Free Framework。
<小时/> 我做了什么:
<div id="fileDelete" class="modal modal-userinfo hide fade">
<?php
$Attaches = GetOrderAttaches($orderDetail->getID(), ATTACH_OWNER_ACCESSOR);
?>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Выберите файлы для удаления из заявки</h3>
</div>
<div class="modal-body">
<form class="form-vertical">
<fieldset>
<div class="control-group">
<label class="control-label" for="checkboxes">Прикреплённые файлы:</label>
<div class="controls">
<ul class="thumbnails">
<?php foreach ($Attaches as $Attach) :?>
<li class="span1">
<label class="checkbox" for="checkboxes-<?php echo $Attach['AttachID']; ?>">
<?php echo $Attach['FileName']; ?>
<input type="checkbox" name="fileToDelete" id="checkboxes-<?php echo $Attach['AttachID']?>"
value="<?php echo $Attach['AttachID']; ?>">
<a href="<?php echo('/upload/files/' . $Attach['FileName']); ?>"
class="thumbnail">
<?php
$thumbnail_src = (mb_strtolower(pathinfo($Attach['FileName'], PATHINFO_EXTENSION)) == 'pdf') ? 'pdf.jpg' : $Attach['FileName'];
?>
<img src="<?php echo('/upload/files/thumbnail/' . $thumbnail_src); ?>"
alt="<?php //echo $Attach['RealFileName'] ?> ">
</a>
</label>
</li>
<?php endforeach ?>
</ul>
</div>
</div>
</fieldset>
</form>
</div>
<div class="modal-footer">
<span class="btn btn-danger enabled">
<span>Удалить</span>
<input id="filedeletebtn" name="deletingfiles" type="button" multiple>
</span>
</div>
负责删除btnclick上的文件的脚本
$('#filedeletebtn').on('click', function(){
var iSelectedFiles = $('#fileDelete').find("input:checkbox:checked").serializeArray();
var count = iSelectedFiles.length;
if (count != 0) {
var html = 'Вы действительно хотите удалить выбранные фото? Элементов: ' + count;
bootbox.confirm(html, function (result) {
if (result) {
$.each(iSelectedFiles, function (index, file) {
$.ajax({
type: 'POST',
url: 'api/order/images/' + file.value,
data: file.value
})
.fail(function (file, textStatus, jqXHR) {
bootbox.alert('Возникла проблема при удалении изображений: </br>' + file.statusText);
});
});
}
});
} else {
bootbox.alert('Выберите файлы для удаления!');
}
});
在文件api / index.php中添加了
F3::route('POST /order/images/@ID [ajax]', 'OrderController->deleteImages');
在控制器Order.php中添加了
public function deleteImages()
{
try {
$data = $_POST['data'];
$queryFileName = Dbh::getInstance()->prepare("DELETE FROM attaches WHERE attachID=?");
$queryFileName->execute(array($data));
} catch (Exception $e){
$this->output['error'] = true;
$this->output['message'] = $e->getMessage();
}
}
<小时/> 那么,如何让它活着?无法理解错误。
答案 0 :(得分:0)
所以......我做到了!在控制器文件中需要更改行:
$data = $_POST['value'];
在需要AJAX更改行的脚本文件中:
$.ajax({
type: 'POST',
url: 'api/order/images/' + file.value,
data: file
})
看起来这是件小事,但昨天我花了一整天时间来解决这个问题。希望,我的经验会对任何人有帮助。