在Zend表单中获取表单帖子上的单选按钮值

时间:2009-11-17 12:34:12

标签: zend-framework

我有 zend格式的Radio类型元素。 如何在表格上获得单选按钮的价值。

请记住我正在使用 Zend Form

if ($this->_request->isPost()) {
    if ($form->isValid($_POST)) {
        $values = $form->getValues();
    }
}

我已经在做上面的代码,这是获取已发布元素的值的正确方法,但对于单选按钮,它只发布该单选按钮的最后一个值。 例如:我的单选按钮就像

$type = array("0"=>"0", "1"=>"1", "2"=>"2")
// add Order element
   $order = $this->CreateElement('Radio', 'order');
   $order->setMultiOptions( $type );
   $elements[] = $order;

然后发布后它总是返回:order = 2

另一方面,如果我在json = False时使用相同的代码,如:

// ------------------------------------------------
// prepare the form for ProductInfo
// ------------------------------------------------
$productinfo = new Form_ProductInfo();
$this->view->productinfo = $productinfo;
$this->view->productinfo->setAction($this->view->url());
$this->view->jsonEncoded = false;

然后它工作正常&选择所选的单选按钮值。

3 个答案:

答案 0 :(得分:1)

使用Zend_Form 只需通过查看页面的源代码来检查您的单选按钮名称,并将其替换为Controller文件,如果您想设置输入控件的名称,那么请抛出帮助程序类。

答案 1 :(得分:0)

如果您有以下HTML:

<input type="radio" name="radioButtonName" value="someValue">

您可以在处理POST请求的页面中使用以下PHP(纯PHP,而不是Zend Framework特定的)代码:

<?php echo $_POST['radioButtonName']; ?>

答案 2 :(得分:0)

if ($this->_request->isPost()) {
    if ($form->isValid($_POST)) {
        $values = $form->getValues();
    }
}

您可以从$ value变量访问表单元素的值。

$vale['name-of-the-radio-button-element']

<强> EDITED

对于您在评论中提供的示例:

    $form = new Zend_Form();
    $type = array("0"=>"0", "1"=>"1", "2"=>"2");
    // add Order element
    $order = $form->createElement('Radio', 'order');
    $order->setMultiOptions( $type );
    $form->addElement($order);
    $form->addElement(new Zend_Form_Element_Submit('submit'));
    echo $form;

    if ($this->_request->isPost()) {
        if ($form->isValid($_POST)) {
            $values = $form->getValues();
            var_dump($values['order']);
        }
    }

这将转储$ order元素的选定值。