【问题标题】:Get radio button value on form post in Zend Form在 Zend Form 中的表单帖子上获取单选按钮值
【发布时间】:2009-11-17 12:34:12
【问题描述】:

我有一个 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;

然后它可以正常工作并选择选定的单选按钮值。

【问题讨论】:

    标签: zend-framework


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      if ($this->_request->isPost()) {
          if ($form->isValid($_POST)) {
              $values = $form->getValues();
          }
      }
      

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

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

      已编辑

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

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

      【讨论】:

      • 好,我已经这样做了,这是获取已发布元素值的真正正确方法,但对于单选按钮,它只发布该单选按钮的最后一个值。例如:我的单选按钮就像 $type = array("0"=>"0", "1"=>​​"1", "2"=>"2") // 添加订单元素 $order = $this ->CreateElement('Radio', 'order'); $order->setMultiOptions($type); $元素[] = $订单;然后在发布后它总是返回: order = 2
      • 你是说即使选择0或1也会返回最后一个值(2)?如果您的意思是单选元素的值是正常的单个值。单选元素允许您只选择一个要返回的元素。如果您需要获取所有可能值的列表,则必须使用复选框元素。我已经用工作代码更新了我的答案。
      【解决方案3】:

      如果您有以下 HTML:

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-04-04
        • 1970-01-01
        • 2011-06-19
        • 1970-01-01
        • 2012-01-05
        • 2012-08-24
        • 2012-03-12
        • 1970-01-01
        • 2014-03-07
        相关资源
        最近更新 更多