Zend Framework 2与from中的按钮交互后没有任何反应

时间:2015-04-06 11:27:08

标签: php forms zend-framework

我正在使用zend框架2开发一个webapp,我想设置一个表单,以便提供编辑某个实体的可能性。我一直在关注zend框架主页的教程,在那里我看到它实际上是如何工作的。我已经成功实现了一个控制器,表单,字段集和一个phtml页面。我的表单应该有两个按钮,第一个提交表单(保存),第二个按钮取消操作(取消)。它们现在都在表格内。 Save是提交类型的输入元素,另一个是按钮类型的按钮元素。正如您所看到的,我已将操作设置为按钮,但是当我点击它时没有任何反应(没有重定向)。有人可以告诉我在哪里犯了错误吗?

<?php
$form->prepare();
$sourceFieldSet = $form->get('source');

$title = $sourceFieldSet->get('title');
$title->setAttribute('class', 'form-control');
$title->setAttribute('placeholder', 'Geben Sie Ihrer Quelle einen möglichst aussagekräftigen Titel');
$title->setLabel('Titel der Quelle');

//....

$save = $form->get('submit');
$save->setAttribute('class','btn btn-primary');

?>

<div class="row">
<div class="col-md-12">
    <div class="headingBlock">
        <h1><?php echo $this->escapeHtml($this->title); ?></h1>
    </div>

    <div class="row mainPageBlock">
        <div class="col-md-12">
            <div class="centerForm">
                <?php echo $this->form()->openTag($form); ?>

                <?php echo $this->formHidden($sourceFieldSet->get('familyTreeId')->setValue($familyTreeId)); ?>

                <div class='form-group'>
                    <?= $this->formRow($title); ?>
                </div>

                //other rows
                //....

                <div class='form-group'>
                    <?= $this->formRow($form->get('cancel')->setAttribute('action', $this->url('familyTreeMaintenance', array( 'action' => 'sources', 'id' => $familyTreeId, 'title' => 'Quellen' )))); ?>
                    <?= $this->formRow($save); ?>
                </div>

                <? echo $this->form()->closeTag(); ?>


            </div>
        </div>
    </div>
</div>

也许你看看我的表格是什么样子以及如何在那里定义按钮也很有用。

<?php

namespace Sources\Form;

class SourceForm extends Form {

public function __construct($name = null) {

    parent::__construct('sourceForm');

    $this
        ->setHydrator(new ClassMethodHydrator())
        ->setInputFilter(new InputFilter())
    ;

    $this->setAttribute('method', 'post');
    $this->add(array(
        //'name' => 'source',
        'type' => 'Sources\Form\SourceFieldset',
        'options' => array(
            'use_as_base_fieldset' => true,
        ),
    ));

    $this->add(array(
        'name' => 'submit',
        'type' => 'Submit',
        'attributes' => array(
            'value' => 'Speichern',
            'id' => 'submit',
        ),
    ));

    $this->add(array(
        'type' => 'button',
        'name' => 'cancel',
        'options' => array(
            'label' => 'Abbrechen',
        ),

    ));

    $this->add(array(
        'name' => 'delete',
        'type' => 'Submit',
        'attributes' => array(
            'value' => 'Löschen',
            'id' => 'submit',
        ),
    ));
}

}

0 个答案:

没有答案