2009-11-17 43 views
0

我在zend表单中有一个无线电类型的元素。 我怎样才能得到单选按钮的形式职位的价值。以Zend表格的形式发布单选按钮值

记住我使用Zend的形式

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; 

然后后后它总是返回:为了= 2

在另一方面,如果我使用相同的代码,而JSON =假像:

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

然后它工作正常&挑选选定的单选按钮值。

回答

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元素的设定值。

+0

不错,我已经这样做了,它是真正正确的方法来获取已发布元素的值,但对于单选按钮,它只会发布该单选按钮的最后一个值。 例如:我的单选按钮就像 $ type = array(“0”=>“0”,“1”=>“1”,“2”=>“2”) // add Order element $ order = $ this-> CreateElement('Radio','order'); $ order-> setMultiOptions($ type); $ elements [] = $ order; 然后在发布后总是返回:order = 2 – 2009-11-17 13:08:44

+0

你是说即使选择0或1,它也会返回上一个值(2)吗? 如果您的意思是无线电元素的值是正常的单个值。 Radio元素允许你只选择一个要返回的元素。如果您需要获取所有可能值的列表,您必须使用复选框元素。 我用一个工作代码更新了我的答案。 – 2009-11-18 08:32:50

0

如果您有以下HTML:

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

您可以使用下面的PHP(纯PHP,没有Zend框架专用)在页面代码处理POST要求:

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

通过使用Zend_Form 只需查看您的单选按钮的名称,通过查看您的页面的源代码并将其替换为控制器文件,如果您想设置您的输入控件的名称,然后去帮助类。