2013-10-31 54 views
0

我在我的zf2應用程序中使用了zend窗體,它有兩個文本框。一旦我提交數據,我就拿這個數據過濾我用來在桌面上顯示數據的數組。一旦數據被過濾並顯示在表格上,表格數據就會被重置。Zend Zf2中的表格,無法保留值

即使在提交之後,是否有辦法保留表單中的值?

這就是我有的代碼,在一個按鈕上單擊我進入此頁面,操作如下所示。所以這個頁面有一個表格,它會根據我擁有的兩個文本框填充。當我點擊提交按鈕時,文本框中的數據消失,數據被填充到表中。

所以我想在這裏做的是,保留輸入的值在文本框中。我可以那樣做嗎?我知道HTTP是一種無狀態協議。我知道我可以使用前端客戶端技術做到這一點,只是想知道是否有工作要做。

public function searchAction() 
    { 
     //search form instantiation 
     $form = new SampleForm(); 

     // get the post request 
     $request = $this->getRequest(); 


     //instantiation of select for querying 
     $select = new Select(); 

     // get parameters 
     $artist = $request->getPost('artist'); 
     $title = $request->getPost('title'); 

     //prepare search criteria array 
     $search = array('artist' => $artist, 'title' => $title); 

     //remove empty criteria from the search criteria list 
     foreach ($search as $key => $value) { 
      if (empty($value)) { 
       unset($search[$key]); 
      } 
     } 
     $result = $this->getAlbumTable()->fetchAll($select->where($search)); 

     return array(
      'albums' => $result, 
      'form' => $form, 
     ); 
    } 
+0

你能顯示一些代碼嗎?沒有一個例子就很難理解正在發生的事情。 –

+0

- >填充你想要的數據?如果你提交,你改變頁面,當然重置表單。 –

+0

我用更多的代碼編輯了這個問題。請檢查一下。謝謝。 – golldy

回答

0

我終於明白我在做什麼。我只需要這樣做。

if ($request->isPost()) { 
      $album = new Album(); 
      $form->setInputFilter($album->getInputFilter()); 
      $form->setData($request->getPost()); 

     }