我正在尝试使用 CHECKBOX 字段从提交的表单中删除一些图像,以及相关的隐藏字段以获取要从文件中取消链接的图像名称。我正在使用 Zend FW,在控制器中我有这个:
if ($input->isValid()) {
$q = Doctrine_Query::create()
->delete('Immobiliare_Model_Images i')
->whereIn('i.ImageID', $input->ids);
$result = $q->execute()
$image = $this->_getParam('Image');
foreach($image as $img) {
if(isset($input->ids)) {
$file = "./uploads/$img";
unlink($file);
} }
上面代码的问题是它取消了所有文件的链接,即使是那些没有被检查的文件。也试过这个:
$image = $this->_getParam('Image');
if(isset($input->ids)) {
foreach($image as $img) {
$file = "./uploads/$img";
unlink($file);
} }
同样的问题:数组中的所有文件都被删除(取消链接)。如果我不使用 foreach() 函数,则不会删除任何文件。可以说删除数据库中的文件名一切正常。
所以我的问题是:如何取消选中复选框的图像的链接?谢谢您的帮助。
html是这样的:
<?php foreach($this->records as $r):?>
<input type="checkbox" name="ids[]" value="<?php echo $r['ImageID']; ?>" class="require-one" />
<input type="hidden" name="Image[]" value="<?php echo $this->escape($r['Image']); ?>" />
<?php endforeach; ?>
……