Yii,在forn中呈现小部件表单时出错

Yii,在forn中呈现小部件表单时出错,yii,Yii,我做了一个小部件 <?php class CSend extends CWidget { public $model; public function init() { $this->model = new ContactForm(); } public function run() { $this->render('send', array('model' => $this->mode

我做了一个小部件

<?php
class CSend extends CWidget
{
    public $model;
    public function init()
    {
        $this->model = new ContactForm();
    }
    public function run()
    {
        $this->render('send', array('model' => $this->model));
    }
}

波夫拉特信息公司

尝试在CSendWidget视图的底部添加以下代码:


通过
beginWidget
启动小部件
CActiveForm
,必须通过
endWidget

更新:


我认为您尝试在另一个表单中创建表单作为更新的答案(HTML中不允许这样做)。您需要它在外部创建或在一个表单中添加它的字段

当您在html中打开一个表单标记,但没有正确关闭它并打开另一个表单标记,从而实际嵌套表单时,会引发该错误,这是不允许的

因此,在使用
调用小部件之前,请确保已关闭所有带有
的表单标记(如果是普通html表单)或
的CActiveForm

编辑:这必须在调用小部件之前完成,因为我怀疑您的页面前面还有另一个表单处于打开状态

另外,不要忘记在CSend小部件中关闭表单标记/结束CActiveForm小部件,如下所示:

查看发送:

<div class="modal-backdrope"></div>
    <div class="modal">
        <?php $form = $this->beginWidget('CActiveForm', array(
            'id'=>'contact-form',
            'enableClientValidation'=>true,
            'clientOptions'=>array(
                'validateOnSubmit'=>true,
                'validateOnChange' => true,
            ),
            'htmlOptions' => array('class' => 'ask_popup', 'name' => 'email-form'),
        )); ?>
        <div class="result"></div>
        <h1>Povratne informacije</h1>
        <div class="modal-close"></div>

        <?php echo $form->textField($model, 'name', array('class' => 'w-input inpt', 'placeholder' => 'Vaše ime')); ?>
        ....
        <?php $form->endWidget(); ?> // close form/CActiveForm widget here
        ....

波夫拉特信息公司
....
//在此处关闭表单/CActiveForm小部件
....

希望对您有所帮助。

您必须在关闭表单标签之前关闭表单标签。您还可以指定从何处获得此错误。W3C validator?发现了一个bug,它是另一个小部件,更新了问题
我是一个失败者
小部件结束前错过了“echo”标记: </div> <?php $this->widget('CSend'); ?> </body> </html>
<div class="gray">
    <?php $url = $this->getController()->createUrl('site/sc'); ?>
    <?php echo CHtml::beginForm($url, 'get'); ?>
    Security Code:
    <?php echo CHtml::textField('sc', '', array('size' => 40, 'id' => 'sc')); ?>
    <?php echo CHtml::submitButton('Get receipt', array('id' => 'send'))?>
    <?php CHtml::endForm(); ?>
</div>
<?php $form->endWidget(); ?>
<div class="modal-backdrope"></div>
    <div class="modal">
        <?php $form = $this->beginWidget('CActiveForm', array(
            'id'=>'contact-form',
            'enableClientValidation'=>true,
            'clientOptions'=>array(
                'validateOnSubmit'=>true,
                'validateOnChange' => true,
            ),
            'htmlOptions' => array('class' => 'ask_popup', 'name' => 'email-form'),
        )); ?>
        <div class="result"></div>
        <h1>Povratne informacije</h1>
        <div class="modal-close"></div>

        <?php echo $form->textField($model, 'name', array('class' => 'w-input inpt', 'placeholder' => 'Vaše ime')); ?>
        ....
        <?php $form->endWidget(); ?> // close form/CActiveForm widget here
        ....