问题描述
我在嵌套表单 yii2-dynamicform 中遇到了一些问题 - 未捕获的语法错误:无效或意外的标记和动态表单未定义。 我正在使用 wbraganca/yii2-dynamicform 扩展。 我想使用动态表单小部件(wbraganca)。我使用 github 的教程进行了尝试。Nested Forms 我的查看页面代码:
<?PHP DynamicFormWidget::begin([
'widgetContainer' => 'dynamicform_wrapper',// required: only alphanumeric characters plus "_" [A-Za-z0-9_]
'widgetBody' => '.container-items',// required: css class selector
'widgetItem' => '.item',// required: css class
'limit' => 10,// the maximum times,an element can be cloned (default 999)
'min' => 1,// 0 or 1 (default 1)
'insertButton' => '.add-item',// css class
'deleteButton' => '.remove-item',// css class
'model' => $modelscarouselActions[0],'formId' => 'create-update-form-carousel','formFields' => [
'media_source','media_url','browse_file','image_ratio','title','field_merge','message_text',],]); ?><div class="panel-body container-items">
<!-- widgetContainer -->
<?PHP foreach ($modelscarouselActions as $j => $carouselAction): ?>
<div class="item panel panel-default">
<!-- widgetBody -->
<div class="panel-heading">
<span class="panel-title-address">Slide : <?= ($j + 1) ?></span>
<style>#buttonRemove-0-0,#buttonRemove00,#buttonRemove0{ display:none;}</style>
<button type="button" class="pull-right remove-item btn-danger btn-xs" id="buttonRemove<?= ($j) ?>">Remove button</button>
<div class="clearfix"></div>
</div>
<div class="panel-body">
<?PHP
//echo $carouselAction->isNewRecord;die;
// necessary for update action.
if (!$carouselAction->isNewRecord) {
echo Html::activeHiddenInput($carouselAction,"[{$j}]id");
}
?>
<fieldset class="scheduler-border1">
<legend class="scheduler-border1">Image Content</legend>
<div class="row">
<div class="col-md-12">
<?PHP echo $form->field($carouselAction,"[{$j}]media_source",['template'=>'{label}<div class="col-sm-7">{input}{error} </div>'])->dropDownList(
['1' => 'Upload','2' => 'URL'],['prompt'=>'Select...','onchange' => "showbrowseAction($(this))",]
); ?>
<?= $form->field($carouselAction,"[{$j}]media_url",['template'=>'{label}<div class="col-sm-7">{input}{error} </div>'])->textInput(['class'=>'form-control checkCharLimit']) ?>
<?= $form->field($carouselAction,"[{$j}]browse_file",['template'=>'<span class="col-sm-3 control-label form-control-label-error" style="display: inline-block;max-width: 100%;margin-bottom: 5px;font-weight: 700;">Upload </span><div class="input-group col-sm-7">
<label class="input-group-btn">
<span class="btn btn-primary" style="margin-left: 15px;">
browse…
{input}</span>
</label>
<input type="text" class="form-control" id="disabledTextFileUpload" readonly style="width:95%">
</div><center><div class="form-control-Feedback-error" style="position: absolute;
left: 24%;"></div><br><small><span style="position: absolute;left: 24%;">NOTE : Size should be less than 10mb,supports for JPG,JPEG or PNG only </span></small></center><br>'])->fileInput(['style' => 'display: none !important;','class'=>'showbrowseFileAction']) ?>
<?= $form->field($carouselAction,"[{$j}]image_background",['template'=>'{label}<div class="col-sm-7">{input}{error} </div>'])->textInput(['maxlength' => 10,'class' => 'form-control colorpickerselect colorpicker-element','autocomplete' => 'off']) ?>
</div>
</div>
</fieldset>
<!----msg--->
<fieldset class="scheduler-border1">
<legend class="scheduler-border1">Message Content</legend>
<div class="row">
<div class="col-md-12">
<?= $form->field($carouselAction,"[{$j}]title",['template'=>'{label}<div class="col-sm-7">{input}{error} </div>'])->textInput(['autocomplete' => 'off','class'=>'form-control checkCharLimit']) ?>
<div class="row">
<div class="col-sm-10">
<?= $form->field($carouselAction,"[{$j}]field_merge",['template'=>'{label}<div class="col-sm-7" style="margin-left: 4.5%;">{input}{error} </div>'])->dropDownList(
$PersonalizationFields,['prompt'=>'Select personalization','class'=>'form-control select2']) ?>
</div>
<div class="btn-group">
<button type="button" id="mergebtn" class="btn btn-primary btn-flat getcountvalue" style="margin-left: -33%;" onclick="callmeragevalueCasousel(this);" value="0">Merge
</button>
</div>
</div>
<?= $form->field($carouselAction,"[{$j}]message_text",['template'=>'{label}<div class="col-sm-7">{input}{error}
<span class="chars-remaining2-container">
<span class="chars-remaining2 badge badge-danger"></span> characters remaining</span><br />
<span class="showdangermsg" style="color:red"> </span></div>'])->textarea(['rows' => 6,'maxlength'=>160,'class'=>'form-control showtextAction']) ?>
</div>
</div>
</fieldset>
</div>
<!--2nd-->
<?PHP DynamicFormWidget::begin([
'widgetContainer' => 'dynamicform_inner',// required: only alphanumeric characters plus "_" [A-Za-z0-9_]
'widgetBody' => '.container-loads',// required: css class selector
'widgetItem' => '.load-item',// required: css class
'limit' => 3,an element can be cloned (default 999)
'min' => 1,// 0 or 1 (default 1)
'insertButton' => '.add-load',// css class
'deleteButton' => '.del-load',// css class
'model' => $modelsActions[$j][0],'formFields' => [
'type','label','data','url','text','mode','initial','max',]); ?>
<div class="panel-body container-loads">
<!-- widgetContainer -->
<?PHP foreach ($modelsActions[$j] as $i => $modelAction): ?>
<div class="load-item panel panel-default">
<!-- widgetBody -->
<div class="panel-heading">
<span class="panel-title-address">Slide : <?= ($i + 1) ?></span>
<style>#buttonRemove-0-0,#buttonRemove0{ display:none;}</style>
<button type="button" class="pull-right del-load btn-danger btn-xs" id="buttonRemove<?= ($i) ?>">Remove button</button>
<div class="clearfix"></div>
</div>
<div class="panel-body">
<?PHP
// necessary for update action.
if (!$modelAction->isNewRecord) {
echo Html::activeHiddenInput($modelAction,"[{$j}][{$i}]id");
}
?>
<?= $form->field($modelAction,"[{$j}][{$i}]type",['template'=>'{label}<div class="col-sm-7">{input}{error} </div>'])->dropDownList(
['postback' => 'Postback action','message' => 'Message action','uri' => 'URI action','datetimepicker' => 'Datetime picker action'],'onchange' => "showButtonAction($(this))",'class'=>'form-control getTypeValue']
); ?>
<?= $form->field($modelAction,"[{$j}][{$i}]label",['template'=>'{label}<div class="col-sm-7">{input}{error} </div>'])->textinput() ?>
<?= $form->field($modelAction,"[{$j}][{$i}]data","[{$j}][{$i}]uri","[{$j}][{$i}]text",['template'=>'{label}<div class="col-sm-7">{input}{error} </div>'])->textarea(['row'=>6]) ?>
<?= $form->field($modelAction,"[{$j}][{$i}]mode",['template'=>'{label}<div class="col-sm-7">{input}{error} </div>'])->dropDownList(
['date' => 'Date','time' => 'time','datetime' => 'Date time'],'onchange' => "showdatepickerAction($(this))"]
); ?>
<?= $form->field($modelAction,"[{$j}][{$i}]initial",['template'=>'{label}<div class="col-sm-7">{input}{error} </div>'])->textInput(['maxlength' => true,'class'=>'form-control datepicker','autocomplete' => 'off'])->label('Initial date/time'); ?>
<?= $form->field($modelAction,"[{$j}][{$i}]max",'autocomplete' => 'off'])->label('min and max date/time'); ?>
</div>
</div>
<?PHP endforeach; ?>
</div>
<button type="button" class="pull-left add-load btn-success btn-xs"><i class="fa fa-plus"></i> Add button</button>
<div class="clearfix"></div>
<script> $('.field-linecarouselactionbutton-0-data,.field-linecarouselactionbutton-0-uri,.field-linecarouselactionbutton-0-text,.field-linecarouselactionbutton-0-mode,.field-linecarouselactionbutton-0-max,.field-linecarouselactionbutton-0-initial').hide(); </script>
<?PHP DynamicFormWidget::end(); ?>
<!-----2nd form end---->
</div>
<?PHP endforeach; ?></div><button type="button" class="pull-left add-item btn-success btn-xs"><i class="fa fa-plus"></i>Add Slide</button><div class="clearfix"></div>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)