[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Yii2 advanced Обратить к полю dropDownList
horosami
У меня в выпадающем списке есть: коты и собаки.
Поля по которым надо искать: name_cat, name_dog соответственно.
Как написать if else, чтоб выполнялся поиск по соответствующему полю для каждого пункта.

я хз как обратить к полю списка))) типа такого $f->field($search, 'place_search')->dropDownList == 'Коты' только не так))....
как написать условие такое?

 <?= $f->field($search, 'place_search')->dropDownList(['В таблице Коты и кошки', 'В таблице Собаки'])->label('Где искать?') ?>
<?=
$f->field($search, 'field_search')->checkboxList(['name_cat' => 'По названию', 'description_cat' => 'По описанию'])->label('Искать по:') ?>
Игорь_Vasinsky
так ты же после submit будешь с данными работать, поэтому нужно работать с request

$post = yii::$app->request->post();


и условие строить по

if($post['place_search'] == '....')


или

if($post['field_search'] == '....')


ну или с get , смотря с чем работаешь

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
horosami
Цитата
так ты же после submit будешь с данными работать, поэтому нужно работать с request

$post = yii::$app->request->post();


и условие строить по

if($post['place_search'] == '....')


или

if($post['field_search'] == '....')


ну или с get , смотря с чем работаешь



я все равно делаю все не так)
это у меня в search.php и данные выводятся через gridview

            <?php $f = ActiveForm::begin(['id' => 'form-search', 'method' => 'get', 'action' => ['site/search'], 'options' => ['data-pjax' => 1]]); ?>
<?=
$f->field($search, 'content_search')->textInput(['autofocus' => true])->label('Что будем искать?') ?>


<?=
$post = yii::$app->request->post(); ?>

<?php
if($post['place_search'] == 'В таблице Коты и кошки') {
$f->field($search, 'field_search')->checkboxList(['name_cat' => 'По названию', 'description_cat' => 'По описанию'])->label('Искать по:')
} else if($post['place_search'] == 'В таблице Собаки') {
$f->field($search, 'field_search')->checkboxList(['name_dog' => 'По названию', 'decription_dog' => 'По описанию'])->label('Искать по:')
}
?>



а это у меня в SiteCintroller.php
по умолчанию о котах инфа выводится

    public function actionSearch()
{
$search = new SearchForm();

$search->load(Yii::$app->request->queryParams);


$dataProvider = $search->search();

return $this->render('search',
[

'search' => $search,
'dataProvider' => $dataProvider,



'columns' => ($search->place_search == SearchForm::SEARCH_CATS) ? ['name_cat', 'description_cat', 'photo_cat:image'] : [
[

'label' => 'Название',
'format' => 'raw',
'value' => function ($model) {
$cats = Cats::findOne($model-id_cat);
return \yii\bootstrap\Html::a($cats->name_cat, ['/cats','numbercats' => $model->id_cat]);

}
]
,
'name_cat', 'description_cat', 'photo_cat:image']
]);


}


:unsure:
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.