2012-09-03 1 views
1

안녕 얘들 아 내가 설명하자"입력 선택"에서 해당 동작으로 ID를 전달하는 방법은 무엇입니까?

$this->view->form = new Application_Form_Kursdaty(); 

    $url = $this->view->url(
     array(
      'action' => 'details', 
      'controller' => $this->getRequest()->getControllerName(), 
      'module' => $this->getRequest()->getModuleName(), 
      'id' => @@@@@SELECTFIELD[selected]@@@@@@ 
     ), 
     'default', 
     true 
    ); 
    $this->view->form->setAction($url);  

나는 기본적으로 내 선택 필드가 내가 선택한 페이지로 리디렉션합니다. 나는 무엇을 해야할지 정말로 모른다, 도와주세요! 양식이 Zend_Form의 인스턴스와 전송 된 데이터로 채워 당신이 사용할 수있는 인 경우

+0

사용자가 브라우저에서 직접 select에서 옵션을 선택하거나 양식을 서버로 보낸 후 처리 할 때 리디렉션해야합니까? –

+0

양식을 클릭 한 후 제출! 그렇지 않으면 js –

+0

코드에서 양식 값을 채우는 폼 생성자가 사용됩니까? –

답변

1

$form->getValue($nameOfField) 또는 $form->getElement($elementName)->getValue()

+0

다음과 같이 사용합니다 : $ this-> view-> form = new Application_Form_Kursdaty (array ('daty'=> $ lol2, 'idkurs'=> $ id)); 'multiOptions'=> $ this -> _ daty 내 선택에 대한 솔루션이 작동하지 않습니다. ( –

+0

어쨌든 thy : thy에 대한 thx :) –

1

여기 문제입니다!

제출 단추를 누른 후에야 select 요소의 값이 설정됩니다. 따라서 게시물 이후에는 값에 액세스 할 수 없습니다.

PHP에서 원하는 작업을 수행하는 방법은 2 가지 작업을 사용하는 것입니다. 첫 번째 작업은 게시물을 가져 와서 유효성 검사를 수행 한 다음 데이터를 가져 와서 해당 선택 값에 따라 원하는 작업으로 전달할 수 있습니다.

public function formAction() { 
    $form = new Form(); 
    $form->setAction('/url'); 

    if ($this->_request->isPost()){ 
     if ($form->isValid($this->_request->getPost()){ 
      $select = $form->getValue('select'); 
      switch($select) { 
       case ('value1') : 
        $this->_forward('action'); 
        break; 
       case ('value2') : 
        $this->_forward('action'); 
        break; 
       default : 
         $this->_forward('action'); 
      } 
     } 
    } else { 
     $this->view->form = $form 
} 

첫 번째 작업에서 볼 수있는 작업 흐름 일 수 있습니다. 세부 사항을 확인해야하지만 _forward은 현재 요청 객체를 잃지 않고 리디렉션을 수행해야하므로이 인스턴스에서 수행 할 수 있어야합니다.