Связанные списки
Связанные списки
Ребята подкиньте плиз пример связанных списков в ActiveForm
Разработка, продвижение, сопровождение сайтов на Modx, Bitrix, Yii http://www.webapplex.ru
Re: Связанные списки
Через DepDrop виджет: http://demos.krajee.com/widget-details/depdrop
Код: Выделить всё
<div class="row">
<div class="<?= $columnsClass ?>">
<?php
echo $form->field($model, $brandAttribute)->widget(Select2::classname(), [
'size' => $size,
'data' => $data,
'options' => [
'id' => $dependId,
],
'pluginOptions' => [
'multiple' => $multiple,
'allowClear' => true,
'placeholder' => 'Марка',
],
'theme' => Select2::THEME_KRAJEE,
])->label($label);
?>
</div>
<div class="<?= $columnsClass ?>">
<?php
echo $form->field($model, $modelAttribute)->widget(DepDrop::classname(), [
'data' => [],
'type' => DepDrop::TYPE_SELECT2,
'select2Options' => [
'theme' => Select2::THEME_KRAJEE,
'size' => $size,
'pluginOptions' => [
'multiple' => $multiple,
'allowClear' => true,
'placeholder' => 'Модель',
],
],
'pluginOptions' => [
'placeholder' => false,
'depends' => [$dependId],
'url' => Url::to(['/brand-model/brand-models']),
],
])->label($label);
?>
</div>
</div>
Re: Связанные списки
что то не выходит, вообщем в базе есть 3 таблицы ads_category(id | name_ad), ads_sub_category (id | sub_name | id_ad (внешний ключ)), ads (id | header |...| id_category (внешний ключ)), связь один ко многим категории объявлений -> подкатегории объявлений -> объявления
во вьюхе пишу
выполняю через html, т.к в таблице объявления напрямую не связана с категориями объявлений,
во контроллере Ads
После выбора из списка категории объявления, в списке подкатегории объявлений не чего не происходит просто Loading... и все
во вьюхе пишу
Код: Выделить всё
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use vova07\imperavi\Widget;
use yii\helpers\ArrayHelper;
use app\models\Cities;
use app\models\AdsSubCategory;
use app\models\AdsCategory;
use kartik\depdrop\DepDrop;
use yii\helpers\Url;
Код: Выделить всё
<?= Html::dropDownList('id_cat', null, ArrayHelper::map(AdsCategory::find()->all(), 'id', 'name_ad'), ['class' => 'form-control', 'id' => 'id_cat']) ?>
Код: Выделить всё
<?= $form->field($model, 'id_sub_category')->widget(DepDrop::classname(), [
'pluginOptions'=>[
'depends'=>['id_cat'],
'placeholder'=>'Выбрать...',
'url'=>Url::to(['/ads/subcat'])
]
]);
?>
Код: Выделить всё
public function getSubCatList($cat_id) {
$adscat = AdsCategory::find()->where(['id' => $cat_id])->all();
return $adscat;
}
public function actionSubcat() {
$out = [];
if (isset($_POST['depdrop_parents'])) {
$parents = $_POST['depdrop_parents'];
if ($parents != null) {
$cat_id = $parents[0];
$out = self::getSubCatList($cat_id);
// 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;
}
}
echo Json::encode(['output'=>'', 'selected'=>'']);
}
Разработка, продвижение, сопровождение сайтов на Modx, Bitrix, Yii http://www.webapplex.ru
- Neuromance
- Сообщения: 716
- Зарегистрирован: 2011.09.06, 13:04
Re: Связанные списки
ну так у вас там скорее всего 500 ошибка. Смотрите, что за ошибка.
Re: Связанные списки
Пишет Not Found (#404): Страница не найдена. странно зачем там страница если там json
Разработка, продвижение, сопровождение сайтов на Modx, Bitrix, Yii http://www.webapplex.ru
Re: Связанные списки
Посмотрите адрес, куда запрос уходит, скорее всего url неправильныйkrosh87 писал(а):Пишет Not Found (#404): Страница не найдена. странно зачем там страница если там json
Re: Связанные списки
Пасиб разобрался
Вот это изменил и все заработало
Код: Выделить всё
use app\models\AdsSubCategory;
use yii\helpers\Json;
Код: Выделить всё
public function getSubCatList($cat_id) {
$adscat = AdsSubCategory::find()->select('id, name')->where(['id_ad' => $cat_id])->all();
return $adscat;
}
Код: Выделить всё
<?= $form->field($model, 'id_sub_category')->widget(DepDrop::classname(), [
'pluginOptions'=>[
'depends'=>['id_cat'],
'placeholder'=>'Выбрать...',
'url'=>Url::to(['/cabinet/ads/subcat'])
]
]);
?>
Разработка, продвижение, сопровождение сайтов на Modx, Bitrix, Yii http://www.webapplex.ru
Re: Связанные списки
Подскажите, как сделать первый выпадающий список без модели? Я не хочу выбранные в нем данные сохранять в бд. Сохраняться будет только значение последнего списка.
- Neuromance
- Сообщения: 716
- Зарегистрирован: 2011.09.06, 13:04
Re: Связанные списки
Arroyo писал(а):Подскажите, как сделать первый выпадающий список без модели? Я не хочу выбранные в нем данные сохранять в бд. Сохраняться будет только значение последнего списка.
Код: Выделить всё
<?= Html::dropDownList('id_cat', null, $array) ?>
Re: Связанные списки
Благодарю.
А div'ы все руками рисовать?
А div'ы все руками рисовать?