собрать все значения всех чекбоксов, чтобы пройти через ajax - PullRequest
0 голосов
/ 14 января 2020

Я хочу получить все значения флажков, которые отмечены, в строке, которую я могу пройти через ajax.

<input value="1" class="customer" type="checkbox">
<input value="2" class="customer" type="checkbox">
<input value="3" class="customer" type="checkbox">
<input value="4" class="customer" type="checkbox">
<input value="5" class="customer" type="checkbox">

, поэтому, если отмечены 2 и 5, я хочу создать переменная var checked='2,5'

var checked_arr = [];
$('.customer:checked').each(function(){
    checked_arr.push($(this).val());
});
checked = JSON.stringify(checked_arr);
$.ajax({
    type    : 'POST',
    url     : '//'+base_url+'/ajax/customers.php',
    data    : 'checked='+checked,
    success : function(data) {
    }
}); 

Я думаю, мне нужно json кодировать ее, чтобы передать массив, но я даже не создаю массив должным образом. Я думаю, что что-то не хватает при вставке значений в массив.

Ответы [ 2 ]

2 голосов
/ 14 января 2020

JSON.stringify() создаст ["2","5"], а не 2,5. Вы должны использовать

var checked = checked_arr.join(',');

Или вы можете просто передать сам массив:

data: {checked: checked_arr},

$.ajax отформатирует это так, что $_POST['checked'] будет массивом.

0 голосов
/ 15 января 2020

Вы должны использовать Array.prototype.join () вместо JSON.stringify

checked =  checked_arr.join(',');

Более подробно вы можете прочитать ответ Уэйна здесь

...