|
|
|
| Здравствуйте!
Посоветуйте пожалуйста, как сделать передачу значений checkbox в get следующей конструкции.
<label>
<input type="checkbox" name="test" value="1">
1
</label>
<label>
<input type="checkbox" name="test" value="2">
2
</label>
|
Хочу получить в адресной строке test=1;2
По какой-то причине вариант с name="test[]" и результатом test[]=1&test[]=2 не подходит. | |
|
|
|
|
|
|
|
для: Sywooch
(08.05.2017 в 08:45)
| | Не бывает таких причин. Два поля с одним именем держать нет смысла. | |
|
|
|
|
|
|
|
для: elenaki
(08.05.2017 в 11:16)
| | Возможно сам вопрос задал не правильно.
Возможно и не чекбоксы нужны или не со стандартным их поведением.
Основная цель добиться формирования необходимого get запроса.
В принципе получается это сделать, но не очень, как по мне, верным решением.
Массив данных передается в скрытый input и данные из него отправляются в get... | |
|
|
|
|
|
|
|
для: Sywooch
(08.05.2017 в 11:24)
| | Зачем насиловать форму, если ее поля будут переданы и обычным способом? | |
|
|
|
|
|
|
|
для: confirm
(08.05.2017 в 12:16)
| | Я не знаю, наверное для красоты...
Попал в руки скрипт где реализован такой вот метод обработки полученной строки:
$attrib = explode(";", \yii\helpers\Html::encode(Yii::$app->request->get($property['search'])));
$query->andWhere([$property['field']=>$attrib]);
|
Хотел понять, как же туда передавать данные? | |
|
|
|
|
|
|
|
для: Sywooch
(08.05.2017 в 12:28)
| | В рамках РНР нельзя передавать поля формы под одним именем, не определяя их как элементы массива: name="name[]", name="name[]", ... В противном случае в массив $_GET попадет значение только последнего поля. А если определять как элементы массива, то будет получен массив name с значениями всех элементов. То есть склеивать все в одну строку, передавая ее одним полем формы, а затем на сервере разбивать вновь на массив надобности нет.
Так поступают только в узкоспециализированных задачах, и коли таковой метод на сервер определен, значит ищите и метод который обеспечивает такое поведение формы, он уже должен быть.
Сама же по себе такая задача для JS конечно не является проблемой. | |
|
|
|
|
|
|
|
для: confirm
(08.05.2017 в 12:41)
| | Спасибо за ответ.
Я как раз и хотел про метод, но сформулировать вопрос удачно не вышло.
ЗЫ, В скрипте не реализована форма в принципе. | |
|
|
|
|
|
|
|
для: Sywooch
(08.05.2017 в 12:54)
| | Yii это серверный фреймворк, искать в нем в коде серверной части клиентские сценарии бессмысленно. Но этот фреймворк использует парадигму модель-представление-контроллер, читайте документацию, поймете. | |
|
|
|
|
|
|
|
для: confirm
(08.05.2017 в 13:10)
| | Я знаком с Yii.
Решение было найдено, спасибо всем за участие!
Работает вот так:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type='text/javascript'>
$(window).load(function(){
$('form#sendform').submit(function() {
var arr=[];
$('input:checked[name=test]').each(function(){
arr.push($(this).val());
});
$('#test').val(arr.join(';'));
return true;
});
});
</script>
</head>
<body>
<div class='controls'>
<label class="checkbox">
<input type="checkbox" name="test" value="190" checked>TEST 190</label>
<label class="checkbox">
<input type="checkbox" name="test" value="200">TEST 200</label>
<label class="checkbox">
<input type="checkbox" name="test" value="210">TEST 210</label>
</div>
<form id="sendform" method="get">
<input id='test' type='hidden' name='test' />
<button type="submit">Go</button>
</form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: Sywooch
(08.05.2017 в 15:06)
| | Очень плохо сделано. | |
|
|
|
|
|
|
|
для: confirm
(08.05.2017 в 15:54)
| | А не подскажете, в чем именно?
Это я подсмотрел где-то.
Сам не особо в теме | |
|
|
|
|
|
|
|
для: Sywooch
(08.05.2017 в 16:28)
| |
$(function() {
$('#sendform').submit(function() {
var chk = $('div.controls input:checked');
if(!chk.length) return false;
$('#test').val($.map(chk, function(e) {
return e.value
}).join(';'))
});
})
|
Имена флажкам как и идентификаторы совсем не нужны. | |
|
|
|
|
|
|
|
для: confirm
(08.05.2017 в 17:39)
| | Спасибо большое. | |
|
|
|