There are 3 checkbox

<input type="checkbox" class="language_check" value="Russian"><p class="language_p">Русский</p><br> <input type="checkbox" class="language_check" value="Latvian"><p class="language_p">Латышский</p><br> <input type="checkbox" class="language_check" value="English"><p class="language_p">Английский</p><br> 

ajax:

 data={ language:$('.language_check:checked').val(), action : 'language'}; $.post('core.php', data, function(response){ if(response == 1){... 

In this scenario, it always sends one value, how can I get it to send an array? )

  • And what is better, $ .ajax or $ .post? - Alexander Reizan
  • var languages = []; $('.language_check:checked').each(function() { languages.push(this.value); }); data={ language: languages, action : 'language'}; ? - Alexey Shimansky
  • Thanks, helped! - Alexander Reizan

2 answers 2

You can use the map function, almost like each , but it returns a new array

Staff example:

 var numbers = [1,2,3,4,5]; var squareNumbers = numbers.map(function (index, val) { return val*val }); squareNumbers // [1,4,9,16,25]; 

In your case:

 data={ language: $('.language_check:checked').map(function (i, el) { return el.value; // тут не JQ объекты }), action : 'language' }; 

PS
If you are trendy and are using ES6

 ... language: $('.language_check:checked').map( (i,el) => el.value ); ... 
  • Your option does not work, the option that was in the comments worked. - Alexander Reizan
  • @Alexander Reydzan, ah, sorry, I forgot the bracket, now there should be no mistakes - ThisMan
  • Uncaught TypeError: Illegal invocation - Alexander Reizan

 $.post('core.php', $('#languageForm').serialize(), function(){}) 
 <form id="languageForm"> <input type="checkbox" name="language[]" class="language_check" value="Russian"><p class="language_p">Русский</p><br> <input type="checkbox" name="language[]" class="language_check" value="Latvian"><p class="language_p">Латышский</p><br> <input type="checkbox "name="language[]" class="language_check" value="English"><p class="language_p">Английский</p><br> </form>