Как собрать массив параметров GET через запятую?

Привет! Есть форма, в которой несколько десятков чекбоксов.
<form method="get">
   <input tupe="checkbox" name="tags[]" value="1">
   <input tupe="checkbox" name="tags[]" value="2">
   <input tupe="checkbox" name="tags[]" value="3">
</form>


И сейчас при отправке формы я получают такую ссылку в адресной строке:
/page.html?tags%5B%5D=1&tags%5B%5D=2$tags%5B%5D=3
Как сделать такую, более красивую?
/page.html?tags=1,2,3
  • Вопрос задан
  • 794 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Можно не отправлять форму, а перехватить событие отправки и переформатировать данные по-своему:

$( "form" ).on( "submit", function( event ) {
  event.preventDefault();
  var tags=[];
  $('input:checkbox:checked',this).each((i,e)=>{tags.push(e.value)});
  var params = "tags=" + tags.join(',');  // "tags=1,2,3" если все три выбраны
  // дальше либо перенаправляйте браузер window.location=... либо ajax'ом отправляйте данные
});


Fiddle.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы