从视图向控制器发送Chtml数据时$ _POST不起作用。它显示一个空数组

时间:2014-11-03 13:00:51

标签: php yii

我是Yii框架的新手。我使用Chtml表单将数据从视图发送到控制器,并希望打印结果并将其插入数据库。但在我的情况下,它显示一个空数组。我无法理解我做错了什么。所以请帮我解决这个问题。

控制器中的

 public function actionTest1()  
    {
        $obj = new Pad;
        if(isset($_POST))
            print_r($_POST);// to check the desired result

        if(isset($_POST['Pad']))
        {
            $obj->attributes=$_POST['Pad'];
            if($obj->save()) // insert the data
                $this->redirect(array('view','id'=>$obj->id));
        }

    }

在视图中

<?php echo CHtml::beginForm('','post',array('id'=>'step1Form')); ?>
  <div class="stopPad">
      <div class="floatLeft padTop5 marRight5">
        <?php
    echo CHtml::radioButton('stoppad',false,array('value'=>'Stop Pad after goal is reached'));
    ?>
      </div>
      <div class="currencyText padTop4 floatLeft">Stop Pad after goal is reached</div>
      <div class="clearBoth"></div>
    </div>
    <div class="stopPad">
      <div class="floatLeft padTop5 marRight5">
     <?php
    echo CHtml::radioButton('stoppad',false,array('value'=>'No limites'));
    ?>

      </div>
      <div class="currencyText padTop4 floatLeft">No limites</div>
      <div class="clearBoth"></div>
    </div>

        <div class="nextText">
    <?php echo CHtml::link('Next >',array('pad/test1'));?>
      </div>
<?php echo CHtml::endForm(); ?>

请帮忙。提前谢谢!

3 个答案:

答案 0 :(得分:0)

您没有提交表单,当然$_POST将为空。下面的行只是一个链接:

<?php echo CHtml::link('Next >',array('pad/test1'));?>

您必须将其更改为:

<?php echo CHtml::submitButton('Next >');?>

并在表单中添加操作。

答案 1 :(得分:0)

使用我所做的更改更新问题。它将我重定向到pad / test1,显示array()作为结果。

控制器中的

public function actionTest1()  
    {

         $obj = new Pad;
        if(isset($_POST))
            CVarDumper::dump($_POST);// to check the desired result

        if(isset($_POST['Pad']))
        {
            $obj->attributes=$_POST['Pad'];
            if($obj->save()) // insert the data
                echo "=====";
        }

    }

在视图中

 <?php echo CHtml::beginForm( '','post'); ?>
  <div class="stopPad">
      <div class="floatLeft padTop5 marRight5">
        <?php
    echo CHtml::radioButton('stoppad',false,array('value'=>'Stop Pad after goal is reached'));
    ?>
      </div>
      <div class="currencyText padTop4 floatLeft">Stop Pad after goal is reached</div>
      <div class="clearBoth"></div>
    </div>
    <div class="stopPad">
      <div class="floatLeft padTop5 marRight5">
     <?php
    echo CHtml::radioButton('stoppad',false,array('value'=>'No limites'));
    ?>

      </div>
      <div class="currencyText padTop4 floatLeft">No limites</div>
      <div class="clearBoth"></div>
    </div>

        <div class="nextText">
   <?php echo CHtml::button('Next >', array('submit' => array('pad/test1'))); ?>
      </div>
<?php echo CHtml::endForm(); ?>

答案 2 :(得分:-1)

新Yii用户之间常见的混淆因素是“如何安全”。验证器工作,它如何与其他验证器一起工作,以及为什么它首先是必要的。本文意味着澄清这种混乱,并解释大规模作业的概念。

http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/