За последние 24 часа нас посетили 22940 программистов и 1695 роботов. Сейчас ищут 1327 программистов ...

много чекбоксов и ajax

Тема в разделе "JavaScript и AJAX", создана пользователем winsok, 3 июл 2018.

  1. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    приветствую.

    есть много чекбоксов (любое количество), как мне из значения передать в php по ajax?
    желательно одним разом)
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Если старые версии не нужны тогда так https://developer.mozilla.org/en-US/docs/Web/API/FormData
    или
    Код (Javascript):
    1.       $('#submit-btn').click(function() {
    2.             var params = $('input, textarea').not("input[type='submit']").serializeArray();
    3.             $.post('/post.php', params).done(function(data) {
    4.                   alert(data);
    5.             });
    6.       });
     
  3. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    @nospiou, а если это не форма? .serializeArray() будет работать?
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    В этом примере нет привязки к форме все сразу отправит
    https://api.jquery.com/serializeArray/
    Если нужны только чекбоксы тогда так
    var params = $("input[type='checkbox']").serializeArray();
     
  5. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    мне нужны только отмеченные чекбоксы
    --- Добавлено ---
    в php можно в цикле сделать .= и будет норм) как тут так же сделать?)
     
  6. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    $("input:checked").serializeArray();
     
  7. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    а как с такими сделать?
    <input type="checkbox" class="user_raw" data-id="37">

    чтоб в конце получить data-id через запятую
     
  8. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Приблизительно так
    PHP:
    1. const data = $("input:checked").get().map(item => item.dataset.id).join(",")
     
    winsok нравится это.
  9. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    спасибо
     
  10. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @winsok, учтите, что input type="radio" тоже может быть "checked" :)
     
  11. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @Sail, справедливое замечание. Кстати, Sizzle в jQuery расширяет возможности селекторов и для тех же чекбоксов можно использовать селектор ":checkbox" - $(':checkbox:checked')