Php $\从视图向控制器发送Chtml数据时,POST不工作。它显示一个空数组

Php $\从视图向控制器发送Chtml数据时,POST不工作。它显示一个空数组,php,yii,Php,Yii,我是Yii框架的新手。我正在使用Chtml表单将数据从视图发送到控制器,并希望打印结果并将其插入数据库。但在我的例子中,它显示一个空数组。我无法理解我做错了什么。所以请帮我解决这个问题 内部控制器 public function actionTest1() { $obj = new Pad; if(isset($_POST)) print_r($_POST);// to check the desired result

我是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));
        }

    }
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',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(); ?>
 <?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(); ?>

请帮忙。提前谢谢

在Yii新用户中,一个常见的困惑是“安全”验证器是如何工作的,它是如何与其他验证器一起工作的,以及为什么首先需要它。本文旨在澄清这一困惑,并解释大规模分配的概念


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

<?php echo CHtml::link('Next >',array('pad/test1'));?>
您必须将其更改为:

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

并向表单中添加操作。

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

内部控制器

 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));
        }

    }
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',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(); ?>
 <?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(); ?>

你能解释一下我哪里做错了吗。这仍然令人困惑@pentium@Pentium10这与安全和不安全属性无关。Op甚至没有提交他/她的表格。所以$u POST没有任何价值。我试过了。但它仍然显示出同样的效果。空数组。根据您的建议,我还在表单中添加了操作@geeta我认为您在做一些错误的事情,因为我已经测试了您的代码,并且在提交代码后它有了值。不可否认的是,如果您单击“提交”按钮,$\u POST将具有值。建议使用yii的转储程序,而不是print\r:CVarDumper::dump$\u post,并再次更改为相同的内容。因为我是新来的,所以我真的不知道我到底做错了什么。如果你已经测试过并且有值,那么我会要求你将代码粘贴到这里,这样我就可以知道我的代码中有什么错误。这将是一个很大的帮助。请用新代码更新你的问题,因此,我可以帮助您,请将CHtml::button更改为CHtml::submitNext>,如果您正在执行当前操作,也可以更改为或将其保留为空。我非常抱歉地通知您,按照您的建议进行更改后,结果仍然是空的。