我从Kartik-v的Depdrop和Wbraganca的动态表格中遇到了一些问题。问题是当我加载更新表单时,数据没有加载到第二个动态字段中。在我添加新行之前,会显示数据。
。
它没有任何错误。我想要的只是让数据显示在第二行,依此类推。
表格中的代码
<?php $catList=ArrayHelper::map(Hs::find()->all(), 'hscode', 'hscode' );?>
<?= $form->field($modelsItems, "[{$i}]hscode")->dropDownList($catList, ['id'=>'cat-id','prompt'=>'Select...']);?>
</div>
<div class="col-sm-6" style="width: 200px">
<?= $form->field($modelsItems, "[{$i}]hsproduct")->widget(Depdrop::classname(), [
'options'=>['id'=>'product-id'],
'pluginOptions'=>[
'placeholder' => FALSE,
'initialize' => true,
'depends'=>['cat-id'], // the id for cat attribute
'url'=> Url::to(['hs/subcat']),
]
]);
?>
</div>
<div class="col-sm-6" style="width: 170px">
<?php $companylist=ArrayHelper::map(Company::find()->all(), 'company', 'company' );?>
<?= $form->field($modelsItems, "[{$i}]company")->dropDownList($companylist, ['id'=>'company-id','prompt'=>'Select...']);?>
</div>
<div class="col-sm-6" style="width: 170px">
<?= $form->field($modelsItems, "[{$i}]variety")->widget(DepDrop::classname(), [
'options'=>['id'=>'cp-varitey'],
'pluginOptions'=>[
'placeholder' => FALSE,
'initialize' => true,
'depends'=>['company-id'], // the id for cat attribute
'url'=> Url::to(['company/subcat2'])
]
])->label('Variety');
?>
</div>
答案 0 :(得分:1)
对于那些遇到同样问题的人,我通过更改身份证来解决问题。第一个ID是cat-id但是当你创建一个新的动态字段时,id会因某种原因改为cat-0-id。我解决它的方法是将id更改为this 'id'=&gt;“cat - ”。$ i。“ - id”并且应该为id的其余部分执行此操作。我的产品ID现在是'id'=&gt;“product - ”。$ i。“ - id”。
我希望这会对某人有所帮助。谢谢