instalar - yii2 install
Select2 y DepDrop en forma dinámica en yii2 (1)
Estoy tratando de usar Select2 y depdrop dentro de una forma dinámica. Para la primera fila solo funciona. Pero en la siguiente fila me aparece el siguiente error.
Cuando estoy usando select2 sin depfrop, funciona bien.
Código de forma (del campo select2 y depdrop)
<div class="col-xs-3 col-sm-3 col-lg-3">
<?= $form->field($modelsProductsales, "[{$i}]productname")->label(false)->widget(Select2::classname(), [
''data'' => ArrayHelper::map(Productbatch::find()->orderBy(''productname'')->all(),''productname'',''productname''),
''language'' => ''en'',
''options'' => [''placeholder'' => ''Select Product'',''id'' => ''prodname''],
''pluginOptions'' => [
''allowClear'' => true
],
]);
?>
</div>
<div class="col-xs-1 col-sm-1 col-lg-1 nopadding">
<?= $form->field($modelsProductsales, ''batchno'')->label(false)->widget(DepDrop::classname(), [
//''options''=>[''id''=>''subcat-id''],
''pluginOptions''=>[
''depends''=>[''prodname''],
''placeholder''=>''Batch No'',
''url''=>Url::to([''/invoice/bills/subcat''])
]
]); ?>
Código de acción subcat
public function actionSubcat() {
$out = [];
if (isset($_POST[''depdrop_parents''])) {
$parents = $_POST[''depdrop_parents''];
if ($parents != null) {
$cat_id = $parents[0];
$out = Productbatch::getBatchNo($cat_id);
echo Json::encode($out);
// the getSubCatList function will query the database based on the
// cat_id and return an array like below:
// [
// [''id''=>''<sub-cat-id-1>'', ''name''=>''<sub-cat-name1>''],
// [''id''=>''<sub-cat_id_2>'', ''name''=>''<sub-cat-name2>'']
// ]
//echo Json::encode([''output''=>$out, ''selected''=>'''']);
return;
}
}
Por favor, avíseme si se requiere más información de mi parte.
revise sus códigos para encontrar códigos JavaScript para el primer elemento que funcione correctamente. Debería agregar códigos JavaScript para todos los mismos elementos que se producen con el botón Insertar. Le sugiero que amplíe otra forma dinámica de /wbraganca/dynamicform/DynamicFormWidget
para usted mismo. Luego anule la función registerAssets
y agregue JavaScripts para otro manejador de inserción.