Php JQRelcopy在renderPartial()中不工作
我正在弹出视图中使用JQRelcopy扩展。使用render()时,扩展工作正常,但每次打开颜色框时,它都会将旧值发布到控制器。 如果我使用renderPartial(),每次打开颜色框时,它都会将新值发布到控制器,但扩展名(JQRelcopy)不会克隆字段 这就是我在视图中使用Extension的地方:Php JQRelcopy在renderPartial()中不工作,php,jquery,yii,yii-extensions,Php,Jquery,Yii,Yii Extensions,我正在弹出视图中使用JQRelcopy扩展。使用render()时,扩展工作正常,但每次打开颜色框时,它都会将旧值发布到控制器。 如果我使用renderPartial(),每次打开颜色框时,它都会将新值发布到控制器,但扩展名(JQRelcopy)不会克隆字段 这就是我在视图中使用Extension的地方: Yii::import('ext.jqrelcopy.JQRelcopy'); $this->widget('ext.jqrelcopy.JQRelcopy',array( '
Yii::import('ext.jqrelcopy.JQRelcopy');
$this->widget('ext.jqrelcopy.JQRelcopy',array(
'id' => 'copylink',
'removeText' => '<i class="icon-remove" style="margin-left: 1px;"></i>',
'removeHtmlOptions' => array('style'=>'color:red; margin-left: 45px'),
'jsAfterCloneComplete' => 'initializeTimePicker()',
'jsAfterNewId' => JQRelcopy::afterNewIdDatePicker(Util::getCustomDatePicker($briefingEquipment, 0, $minDate, $maxDate)),
'options' => array(
'copyClass' => 'copy',
'limit' => 10,
'clearInputs' => true,
'excludeSelector' => '.skipcopy',
)
));
这个问题是因为render和renderPartial,我使用render和扩展工作得非常好。 下面是render和renderPartial之间的区别,这是我从Stackoverflow中得到的 render()通常用于呈现与用户在应用程序中看到的“页面”相对应的视图。它首先渲染指定的视图,然后渲染当前控制器操作的布局(如果适用),将第一次渲染的结果放置到布局中。然后执行输出处理(此时意味着自动插入任何必要的标记并更新动态内容),最后输出结果 renderPartial()通常用于呈现页面的“一部分”。与render()的主要区别在于,此方法不会将渲染结果放置在布局中。默认情况下,它也不执行输出处理,但您可以使用$processOutput参数覆盖此行为
public function actionShowEquipment()
{
$this->layout = "//layouts/popup";
$equipmentConflicts = '';
$briefingId = $_POST['briefingId'];
$briefingDate = $_POST['briefingDate'];
$briefingEndDate = isset($_POST['briefingEndDate']) ? $_POST['briefingEndDate'] : '';
$serializeBriefingEquipments = isset($_POST['briefingEquipments']) ? $_POST['briefingEquipments'] : '';
$equipment = CHtml::listData(Equipment::model()->findAll(), 'id', 'name');
$briefingCenter = BriefingCenter::model()->findByPk(Yii::app()->user->currentBriefingCenterId);
if ($briefingId) {
$briefingEquipmentArr = BriefingEquipment::model()->findAll('briefing_id = :bId', array(':bId' => $briefingId));
if (!$briefingEquipmentArr) {
$briefingEquipmentArr[] = new BriefingEquipment();
}
} else if ($serializeBriefingEquipments) {
$serializeBriefingEquipments = unserialize($serializeBriefingEquipments);
}
$briefing = Briefing::model()->findByPk($briefingId);
if (!empty($briefing->scheduled_date) && !empty($briefing->scheduled_end_date)) {
$minDate = $briefing->scheduled_date;
$maxDate = $briefing->scheduled_end_date;
} else {
$minDate = $briefingDate;
$maxDate = $briefingEndDate;
}
echo $this->renderPartial('edit/equipment', array(
'briefing' => array(
'briefingId' => $briefingId,
'briefingDate' => $briefingDate,
'briefingEndDate' => $briefingEndDate,
),
'minDate' => strtotime($minDate),
'maxDate' => strtotime($maxDate),
'briefingEquipmentArr' => $briefingEquipmentArr,
'equipments' => $equipment,
'briefingCenter' => $briefingCenter,
'serializeBriefingEquipments' => $serializeBriefingEquipments,
'dateFormat' => Yii::app()->user->currentBriefingCenterDateFormat,
));
}