Intereting Posts
Добавление тегов к выбору Что происходит, когда я ставил косую черту (/) после URL-адреса .php? Можете ли вы связать вызовы модели в CodeIgniter Как показывать сообщения на фейсбуке с моего сайта без access_token? Почему это регулярное выражение выбрасывает ошибку PREG_BACKTRACK_LIMIT_ERROR? Проблема с: Неустранимая ошибка: оператор не поддерживается для строк в дезинфицирующие данные Woocommerce – Переместить добавить в корзину кнопку переменной продукт php simple html dom parse img html5 атрибуты? Почему openssl_pkey_new () не работает? Laravel 4, -> withInput (); = Неопределенное смещение: 0 PHP – `get_headers` возвращает« 400 Bad Request »и« 403 Forbidden »для действительных URL-адресов? Разрешено ли PHP изменять файл .htaccess в текущей папке? Как я должен реализовать «аутентификацию на основе токенов» для набора веб-API безопасным способом с использованием PHP и MySQL (без использования OAuth)? Могу ли я полагаться на обходное решение PHP php.ini для проблемы с плавающей точкой

Как отправить значения массива флажков через Ajax с помощью jQuery?

У меня есть форма с большим количеством полей формы (12 xn строк). Первое поле в каждой строке (которое представляет собой продукт) – это флажок, который напоминает это:

<input type="checkbox" class="ids" name="ids[]" value="1"> 

Значение каждого флажка уникально.

То, что я пытаюсь сделать, – отправить проверенные значения скрипту PHP для обработки через Ajax. У меня возникают проблемы с получением идентификаторов на сервере должным образом. Я попытался использовать несколько вещей, в том числе:

 $('.ids:checked').serialize(); 

а также

 var ids = []; $('.ids:checked').each(function(i, e) { ids.push($(this).val()); }); $.ajax({ url: "stub", type: "post", dataType: "json", data: { 'ids[]': 'ids[]='+ids.join('&ids[]=') }, success: function(data) { // stub } }); 

Но это приводит к получению этого на сервере:

 ids[]=104&ids;[]=105 

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

Как отправить на сервер только значения delete[] ? Идеально в том смысле, что PHP распознает его как массив?

(Я работал над этим, отправив идентификаторы в виде строки с разделителями-запятыми, но хотел бы знать, как это сделать, поскольку я потратил достаточно времени, пытаясь понять это).

Это отлично сработало для меня

 <input type="checkbox" class="ids" name="ids[]" value="2"> <input type="checkbox" class="ids" name="ids[]" value="3"> <input type="checkbox" class="ids" name="ids[]" value="4"> <input type="checkbox" class="ids" name="ids[]" value="5"> <input type="checkbox" class="ids" name="ids[]" value="6"> <div id="response"></div> <button id="submit">Submit</button> <script> $('#submit').click(function() { $.ajax({ url: "stub.php", type: "post", data: $('.ids:checked').serialize(), success: function(data) { $('#response').html(data); } }); }); </script> 

Затем на stub.php

 var_dump($_POST); 

Почему бы вам не отправить идентификатор как строку, разделенную запятой. Вы можете разделить его на стороне сервера и применить связанную с ним логику.

 var ids = []; $('.ids:checked').each(function(i, e) { ids.push($(this).val()); }); $.ajax({ url: "stub", type: "post", dataType: "json", data: { 'ids[]': ids.join() }, success: function(data) { // stub } });