Js в yii2

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
shkutavlad
Сообщения: 62
Зарегистрирован: 2016.07.06, 11:54

Js в yii2

Сообщение shkutavlad »

Нужно мне сделать так, чтобы при выборе определенного значения, выводило нужное поле для ввода/выбора файла

Код: Выделить всё

<?= $type = $form->field($model, 'type')->dropDownList([
            'string' => 'string',
            'image' => 'image',
        ]) ?>
    <?
        $file = $form->field($model, 'file')->fileInput();
        $value = $form->field($model, 'value')->textInput();
    ?>
и

Код: Выделить всё

$script = <<< JS
$($type).on('change',function(){
    var selection = $(this).val();
    switch(selection){
     case $value:
    $($value).show()
    $($file).hide()
    break;
     case $file:
    $($file).show()
    $($value).hide()
    break;
    default:
    $($value).hide()
    }
});
JS;
В чем ошибка ? С js не работал, скрипт нашел и переделал немного http://jsfiddle.net/vyc7N/57/
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Js в yii2

Сообщение rak »

shkutavlad писал(а): С js не работал, скрипт нашел и переделал немного http://jsfiddle.net/vyc7N/57/
в этом ошибка.
чтобы что-то немного переделать необходимо понимать, что именно делаешь
shkutavlad
Сообщения: 62
Зарегистрирован: 2016.07.06, 11:54

Re: Js в yii2

Сообщение shkutavlad »

rak писал(а):
shkutavlad писал(а): С js не работал, скрипт нашел и переделал немного http://jsfiddle.net/vyc7N/57/
в этом ошибка.
чтобы что-то немного переделать необходимо понимать, что именно делаешь
Я понимаю что делаю, но как переделать - не понимаю
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Js в yii2

Сообщение rak »

shkutavlad писал(а): Я понимаю что делаю, но как переделать - не понимаю
точно?
что за переменные $type, $file, $value?
shkutavlad
Сообщения: 62
Зарегистрирован: 2016.07.06, 11:54

Re: Js в yii2

Сообщение shkutavlad »

rak писал(а):
shkutavlad писал(а): Я понимаю что делаю, но как переделать - не понимаю
точно?
что за переменные $type, $file, $value?
в $type храним значение массива string и image
в $file - поле выбора
в $value - поле ввода

Просто записал в переменные поля для выбора,ввода и fileInput , думаю что можно переменные в скрипт загнать, потому, что html код работает, если так записать

Код: Выделить всё

 <select id="type">
        <option ></option>
        <option value="image">image</option>
        <option value="string">string</option>
    </select>

    <div id="string" style="display:none;">
        <?= $value; ?>
    </div>
    <div id="image" style="display:none;">
        <?= $file; ?>
    </div>
Js

Код: Выделить всё

$('#type').on('change',function(){
    var selection = $(this).val();
    switch(selection){
     case "string":
    $("#string").show()
    $("#image").hide()
    break;
     case "image":
    $("#image").show()
    $("#string").hide()
    break;
    default:
    $("#string").hide()
    }
Здесь те же самые значения, но передаются с html по id="имя"
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Js в yii2

Сообщение rak »

здесь в js не те же самые значения!
shkutavlad
Сообщения: 62
Зарегистрирован: 2016.07.06, 11:54

Re: Js в yii2

Сообщение shkutavlad »

rak писал(а):здесь в js не те же самые значения!
почему не те? с div`ов же берут значения по id
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Js в yii2

Сообщение rak »

shkutavlad писал(а):
rak писал(а):здесь в js не те же самые значения!
почему не те? с div`ов же берут значения по id
есть разница между

Код: Выделить всё

$("#string").show()
$(string).show()
?
shkutavlad
Сообщения: 62
Зарегистрирован: 2016.07.06, 11:54

Re: Js в yii2

Сообщение shkutavlad »

rak писал(а):
shkutavlad писал(а):
rak писал(а):здесь в js не те же самые значения!
почему не те? с div`ов же берут значения по id
есть разница между

Код: Выделить всё

$("#string").show()
$(string).show()
 
?
#-это вроде как по нажатию
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Js в yii2

Сообщение rak »

shkutavlad писал(а): #-это вроде как по нажатию
вот потому я и написал, перед тем, как копировать куски кода из интернета - неплохо б было разобраться что они делают.
http://www.w3schools.com/cssref/css_selectors.asp
shkutavlad
Сообщения: 62
Зарегистрирован: 2016.07.06, 11:54

Re: Js в yii2

Сообщение shkutavlad »

rak писал(а):
shkutavlad писал(а): #-это вроде как по нажатию
вот потому я и написал, перед тем, как копировать куски кода из интернета - неплохо б было разобраться что они делают.
http://www.w3schools.com/cssref/css_selectors.asp
Понял, вы правы, спасибо за линк. Но все же, вместо id, переменную можно подставить?
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Js в yii2

Сообщение rak »

shkutavlad писал(а):
rak писал(а):
shkutavlad писал(а): #-это вроде как по нажатию
вот потому я и написал, перед тем, как копировать куски кода из интернета - неплохо б было разобраться что они делают.
http://www.w3schools.com/cssref/css_selectors.asp
Понял, вы правы, спасибо за линк. Но все же, вместо id, переменную можно подставить?
Можно, вот так

Код: Выделить всё

$("#$value").show()
shkutavlad
Сообщения: 62
Зарегистрирован: 2016.07.06, 11:54

Re: Js в yii2

Сообщение shkutavlad »

но ведь # - это работы с id? а мне нужно с переменной
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Js в yii2

Сообщение rak »

shkutavlad писал(а):но ведь # - это работы с id? а мне нужно с переменной
а при чем переменная php к js?
shkutavlad
Сообщения: 62
Зарегистрирован: 2016.07.06, 11:54

Re: Js в yii2

Сообщение shkutavlad »

rak писал(а):
shkutavlad писал(а):но ведь # - это работы с id? а мне нужно с переменной
а при чем переменная php к js?
Значит нельзя напрямую работать:
php переменная - js скрипт ?
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Js в yii2

Сообщение rak »

конечно же нет
shkutavlad
Сообщения: 62
Зарегистрирован: 2016.07.06, 11:54

Re: Js в yii2

Сообщение shkutavlad »

Код: Выделить всё

 <label>Choose type</label>
    <select id="type">
//тут нужно подставить $form->field
/*
$list =  $form->field($model, 'type')->dropDownList([
        'string' => 'string',
        'image' => 'image',
  ])
*/
    </select> 
Нужно вот так делать?
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Js в yii2

Сообщение rak »

нужно добавить класс для dropdown

Код: Выделить всё

$form->field($model, 'type')->dropDownList([
        'string' => 'string',
        'image' => 'image',
  ],
  ['class' => 'js-type' ]);
и потом в js

Код: Выделить всё

$('.js-type').on('change',function(){
    var selection = $(this).val();
    console.log(selection)
});
shkutavlad
Сообщения: 62
Зарегистрирован: 2016.07.06, 11:54

Re: Js в yii2

Сообщение shkutavlad »

rak писал(а):нужно добавить класс для dropdown

Код: Выделить всё

$form->field($model, 'type')->dropDownList([
        'string' => 'string',
        'image' => 'image',
  ],
  ['class' => 'js-type' ]);
 
и потом в js

Код: Выделить всё

$('.js-type').on('change',function(){
    var selection = $(this).val();
    console.log(selection)
});
 
Спасибо! Вот как нужно было. А что делает
console.log(selection)
??
Закрыто