2012-12-01 3 views
2

나는 form-> button을 통해 컨트롤러의 동작을 호출하려고합니다. 나는 웹 페이지에서 일을 다음 있습니다 :cakephp 버튼을 통한 동작 호출

  • 검색 폼
  • 테이블을 온 클릭 같은 액션을 호출한다 POSTLINK
  • 2 버튼과 같은 delte 옵션. 제 문제는 버튼 중 하나를 클릭 할 때 게시 요청이 시작되지 않는다는 것입니다. ('검색'만들 view.ctp

    는 에코 $ this-> 서식 -> 배열 ( '유형'=> '파일', 'URL'=> 배열 ( '컨트롤러 : 다음은 내 코드입니다 '=>'artist ', 'action '=>'index ', ), )); echo $ this-> Form-> input ('name'); echo $ this-> Form-> end (array ( 'label'=> '예술가 검색', 'class'=> 'btn btn-info controls' ));

    가 ....
    echo '' . $this->Form->postlink('', 
            array('action' => 'delete', 
             $row['Artist']['id']), 
            array('confirm' => 'Are you sure?') 
           ); 
    

    는 $ this- 에코 $ this->> 서식 -> 버튼 ('주요'어레이 ( '이름'에코 => '제출' , '값'=> '타입'=> 'URL'=> 어레이 ( '제어기'=> '아티스트', '액션'=> '인덱스' 를 '제출'주요 '), ));

    는 '값'=> 'Unfeatured' '타입'=> '제출'=> '제출'$ this-> 서식 -> 버튼 ('Unfeatured'어레이 ( '이름'에코 '컨트롤러'=> '아티스트', '동작'=> '색인', ), ));

컨트롤러 :

public function isFeatured() { 
    if ($this->params->data['submit'] == 'Featured') { 
     //code 
    } else if($this->params->data['submit'] == 'Unfeatured') { 
     //code 
    } 
    $this->redirect(array('action' => 'index')); 
} 

내가 잘못 무엇입니까?

답변

0

양식 선언이 컨트롤러의 'isFeatured'기능을 가리키고 있지 않습니다. 실제 양식으로 단추를 다시 작성해야합니다. 버튼 자체는 제출하지 않습니다.

echo $this->Form->create('Search', array('action'=>'isFeatured')); 
echo $this->Form->hidden('featured', array('value'=>'1')); 
echo $this->Form->end('Featured'); 

echo $this->Form->create('Search', array('action'=>'isFeatured')); 
echo $this->Form->hidden('featured', array('value'=>'0')); 
echo $this->Form->end('Not Featured'); 

컨트롤러 :

public function isFeatured() { 
    if($this->request->data){ 
     if($this->request->data['Search']['featured'] == '1'){ 
     //..Set the artist as featured 
     } 
     if($this->request->data['Search']['featured'] == '0'){ 
     //..Set the artist as not featured 
     } 
    } 
} 
+0

하지만 어떻게 컨트롤러가 요청 데이터를 얻을 것이다. 검색 양식과 2 개의 버튼이있는 양식 (기능 및 특색이없는 페이지)에 2 개의 양식이 있음을 의미합니다. 나는 기능을위한 별도의 양식을 만들 수 없습니다 기능이 없습니다. – z22

+0

은 내가 위에있는 것처럼 2 가지 형태로되어 있습니다. 값은 기능에서 1이고 기능에서 0입니다. 그래서 컨트롤러에서 제출 된 데이터를 평가하고 평가를 기반으로 저장을 수행합니다. 또는 두 개의 개별 양식,보기 및 제어기 기능을 작성할 수 있습니다. 그래도 오랫동안 보입니다. –