2

form->button からコントローラのアクションを呼び出したいです。Web ページには次のようなものがあります。

  • 検索フォーム
  • delte オプションを postLink として持つテーブル
  • 同じアクション onclick を呼び出す必要がある 2 つのボタン。私の問題は、ボタンのいずれかをクリックしても、投稿リクエストが発生しないことです。以下は私のコードです:view.ctp

    echo $this->Form->create('Search', array( 'type' => 'file', 'url' => array( 'controller' => 'artists', 'action' => 'index', )、)); echo $this->Form->input('name'); echo $this->Form->end(array( 'label' => 'Search Artist', 'class' => 'btn btn-info controls' ));

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

    echo $this->Form->button('Featured', array( 'name' => 'submit', 'value' => 'Featured', 'type' => 'submit', 'url' => array( 'controller' => 'artists', 'action' => 'index', ), ));

    echo $this->Form->button('Unfeatured', array( 'name' => 'submit', 'value' => 'Unfeatured', 'type' => 'submit', 'url' => array( 'controller' => 'artists', 'action' => 'index', ), ));

コントローラ:

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

どこで間違っていますか?

4

2 に答える 2

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
      }
   }
}
于 2012-12-01T17:05:40.147 に答える
0

リダイレクトすることが重要でない場合は、ajax呼び出しを行い、クリックしたボタンの値を渡し、コントローラーから必要に応じてリダイレクトすることができますか

于 2020-04-07T13:23:15.500 に答える