2

私は Zend を初めて使用し、何かを実行するボタンを備えた単純なページを作成したいと考えています。(多くのオンライン資料を読んでも)得られないのは、コントローラーで対応するアクションを作成する方法です。

次のビュー スクリプト index.phtml があります。

<?php

echo $this->button1

add.phtml という別のスクリプト:

<?php echo $this->json($this->data);

そしてコントローラー:

class blabla extends Zend_Controller_Action {
    public function indexAction() {

        $addButton = new Zend_Form_Element_Button("button",array('class' => 'btn_op', 'action'=>'add' , 'id' => 'addbtn')); //button
        $addButton->setLabel("Add >>");
        //$addButton->setAttrib('onclick', 'alert("Hello!")'); //not what I want
        $this->view->button1 = $addButton->render(null);


    }

    public function addAction() {

        echo 'I want my code to go here on click';

    }

}

ありがとう :)

4

3 に答える 3

2

これを試してもらえますか

class blabla extends Zend_Controller_Action {
    public function indexAction() {

        $addButton = new Zend_Form_Element_Button("button",array('class' => 'btn_op', 'action'=>'add' , 'id' => 'addbtn')); //button
        $addButton->setLabel("Add >>");

        $url = $this->view->url( array('controller' => 'blabla', 'action' => 'add'), 'default', false);
        $addButton->setAttrib('onclick', 'window.location.replace("'.$url.'");');

        $this->view->button1 = $addButton->render(null);
    }
}
于 2013-08-21T04:40:51.460 に答える
0

if you want your button from one action to go to the another action , You Can always use redirect helpers..

i assumed you are using Zf 1 and not zf 2 from your code..

you can directly redirect with following code,

 $this->_helper->redirector('your_action', 'Your_controller');

in your case

class blabla extends Zend_Controller_Action {
public function indexAction() {

    $addButton = new Zend_Form_Element_Button("submit",array('class' => 'btn_op', 'action'=>'add' , 'id' => 'addbtn')); //button
    $addButton->setLabel("Add >>");
    //$addButton->setAttrib('onclick', 'alert("Hello!")'); //not what I want
    $this->view->button1 = $addButton->render(null);
    $this->_helper->redirector('add', 'Your_controller');


}

public function addAction() {

    echo 'The Button was Pressed';

}

}

I am sure that will work , you can also check if the button is pressed or not, if you want , but this will basically submit the button and then redirect to your add action,..

于 2013-08-20T17:05:59.123 に答える
0

実際にリダイレクトしたいだけですか、それともフォームにデータを送信するつもりですか? あなたの質問の文脈と、ボタンに「追加 >>」というラベルが付いていることを考えると、あなたが送信したいと思っていたでしょう。

この場合、「追加」ボタンを Zend_Form_Element_Submit のインスタンスにして、 addAction() メソッドを指すフォームの「アクション」属性を持つフォームにラップする必要があります。例えば:

class blabla extends Zend_Controller_Action {

    public function indexAction() {

        $addButton = new Zend_Form_Element_Submit('add');
        $addButton->setLabel('Add >>');
        $addButton->setAttrib('id', 'addbtn')

        $this->view->button1 = $addButton->render();

    }

    public function addAction() {

        echo 'I want my code to go here on click';

    }

}

対応するビュー スクリプト:

<form action="<?php echo $this->url( array('controller' => 'blabla', 'action' => 'add'), 'default', false) ?>" method="post">
  <?php echo $this->button1 ?>
</form>
于 2013-08-21T07:40:50.337 に答える