Страница 1 из 1
button+JS+checkbox
Добавлено: 2019.04.11, 11:54
dymsonn
Здравствуйте. Не могу понять по документации, как получить значения checkbox'ов.
Эта кнопка отправляет значение id=111 в экшн контроллера.
Код: Выделить всё
<?=
Html::submitButton('<span class="glyphicon glyphicon-export"></span> Экспорт в XML',
[
'class' => 'btn btn-default',
'onclick' => 'window.location.href = "'.Url::to(['object/exportxml', 'id' => '111']).'"'
])
?>
В контроллере формируется файл и отдаётся на скачивание.
Код: Выделить всё
return Yii::$app->response->sendFile($file_name);
Как значения галочек (как это советуют в документации):
Код: Выделить всё
var keys = $(".grid-view").yiiGridView("getSelectedRows");
подставить вместо '111' ?
Re: button+JS+checkbox
Добавлено: 2019.04.11, 18:10
futbolim
'onclick' => 'window.location.href = "'.Url::to(['object/exportxml', 'id' => '']).'" + $(".grid-view").yiiGridView("getSelectedRows")'
?
Re: button+JS+checkbox
Добавлено: 2019.04.12, 10:40
dymsonn
Не долго музыка играла(( конкретно для этого примера работает. Но это же checkbox. Т.е. если я ставля один флажок, то всё работает. Коррекнее даже так по моему
А вот если я отмечаю более одной галочки, то вместо корректно результата в get
Код: Выделить всё
array(1) { ["id"]=> array(2) { [0]=> string(4) "111" [1]=> string(4) "112" } }
получаю ошибку sql запроса и вот такой get
Код: Выделить всё
array(1) { ["id"]=> array(1) { [0]=> string(9) "111,112" } }
И что то не понимаю как допилить(
Re: button+JS+checkbox
Добавлено: 2019.04.13, 07:48
dymsonn
Жаль что ответа нет. По моему костыль, но решил в лоб.
Код: Выделить всё
explode(',', Yii::$app->response->get('id')[0]);
Re: button+JS+checkbox
Добавлено: 2019.04.15, 15:44
dymsonn
Не оставляю попытки сделать красивее чем есть. Вот так должно работать, но не работает. Или я не прав?
Код: Выделить всё
$('input:checkbox:checked').each(function() {
var checked = [];
checked.push($(this).val());
});
Re: button+JS+checkbox
Добавлено: 2019.04.15, 15:49
dymsonn
И еще вопрос по этой теме к знатокам. В чем отличие нажатия на checkbox в поле grid и нажатие на checkbox_all в заголовке grid? Хочу покрасить выделенную строку. Но не получается этого сделать когда одним кликом отмечаю все checkbox. То же само и с неактивной кнопкой. Если кнопка имеет id=exportxml, то вот тут должно происходить волшебство.
Код: Выделить всё
['class' => 'yii\grid\CheckboxColumn',
'checkboxOptions' => function () {
return [
'onchange' => '
$(this).each(function(){
$(this).parent().parent().toggleClass("danger");
if ($(this).is(":checked")){
$("#exportxml").removeAttr("disabled");
} else {
$("#exportxml").attr("disabled", "disabled");
}
});
'
];
}
],
Но оно происходит только при одиночном нажатии, при групповом ничего не происходит.