2010-09-29 48 views
0

我正在處理Zend_Form,並可以創建一個表單來添加/編輯單個數據庫記錄,但現在我試圖創建一個表單來編輯單個頁面上的多個記錄。例如,如果我有一張運動隊表格,另一個表格分配給他們的球隊,我希望能夠點擊我網站上的一個球隊,並將所有球員列爲輸入行以編輯他們的名字,出生日期等,在底部有一個提交按鈕以保存任何更改。Zend形成多個記錄

需要注意的一件事是,可以在頁面上編輯的記錄數量是可變的;這不是一個定量。

任何指針/幫助將非常感激。

謝謝。

回答

0

我使用下面的代碼從數據庫中刪除多個項目。

在索引頁(我的數據庫記錄列表):

<form method="post" action="<?php echo $this->baseUrl().'/admin/pages/deleteMultiple'; ?>"> 
    <td class="checkboxTable"><input name="remove[<?php echo $data[$row]->id; ?>]" type="checkbox" id="checkbox[]" value="<?php echo $data[$row]->id; ?>"/></td> 
    <input class="deleteMultipleButtonBottom" name="deleteMultiple" type="submit" id="deleteMultiple" value="<?php echo $this->translate('Delete selected'); ?>"> 
</form> 

用戶將看到一個確認頁面:

<form method="post"> 
     <input type="hidden" name="removeId" value="<?php echo implode($_POST['remove'], ','); ?>" /> 
     <input class="deleteYes" type="submit" name="deleteMultiple" value="Yes" /> 
     <input class="deleteNo" type="submit" name="deleteMultiple" value="No" /> 
    </form> 

而且我的行爲是這樣的:

if($this->getRequest()->isPost()) 
     { 
      if($this->getRequest()->isPost('remove')) 
      { 
       $this->view->pages = $this->pagesService->GetPages($this->getRequest()->getPost('remove')); 

       if($this->getRequest()->getPost('deleteMultiple') == 'Yes') 
       { 
        $this->pagesService->DeleteMultiplePages($this->getRequest()->getPost('removeId'), $this->view->user->username, $this->getRequest()->getPost('countedItems')); 
       } 
       elseif($this->getRequest()->getPost('deleteMultiple') == 'No') 
       { 
        $this->_helper->flashMessenger(array('message' => $this->view->translate('The pages were <u>not</u> deleted'), 'status' => 'notice')); 
        $this->_helper->redirectToIndex(); 
       } 
      } 
     } 

並在我的服務頁面:

public function DeleteMultiplePages($id) 
    { 
     $this->pages->delete('id IN (' . $id . ')'); 
    } 

這種方法應該適用於更新值。