0

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

……

4

0 回答 0