我正在尝试使用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; ?>
...