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
....