ФорумПрограммированиеJavaScript → Отправка array из multiple checkbox values

Отправка array из multiple checkbox values

  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 29 октября 2012 г. 19:43

    Никак не могу взять активные чекбоксы в var, пробовал и так
    var storona = $('input:checkbox[name="storona[]"]');

    и так
    var storona = $('input[name="storona[]"]');

    и так
    var storona = $('input:checkbox[name="storona[]"]:checked');

    ничего не удается.

    <input type="checkbox" name="storona[]" value="Левое зеркало (водительское)" /> Левое зеркало (водительское)<br />
    <input type="checkbox" name="storona[]" value="Правое зеркало (пассажирское)" /> Правое зеркало (пассажирское)<br />
    <input type="checkbox" name="storona[]" value="Внутрисалонное зеркало заднего вида" /> Внутрисалонное зеркало заднего вида<br />
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 29 октября 2012 г. 19:59, спустя 15 минут 57 секунд

    Неужели третий вариант не работает? Покажи весь файл.
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 октября 2012 г. 20:44, спустя 44 минуты 38 секунд

    ТС, лучше на http://jsfiddle.net/ опубликуй куски кода чем здесь
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 октября 2012 г. 20:54, спустя 10 минут 22 секунды

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 октября 2012 г. 22:25, спустя 1 час 31 минуту 13 секунд

    Вот вот
    Сапожник без сапог
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 29 октября 2012 г. 22:37, спустя 11 минут 59 секунд

    http://jsfiddle.net/Gr7nP/

    ну вроде всё так, но не работает, юзаю http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js

    вот полный код
    $(document).ready(function() {

    $('#submit').click(function () {

    var marka = $('input[name=marka]');
    var model = $('input[name=model]');
    var year = $('input[name=year]');
    var ver = $('select[name=ver]');
    var storona = $('input[name^="storona"]:checked');

    var full_name = $('input[name=name]');
    var phone = $('input[name=phone]');
    var town = $('input[name=town]');

    //If error found, add hightlight class to the text field

    if (marka.val()=='') {
    marka.addClass('hightlight');
    return false;
    } else marka.removeClass('hightlight');

    if (model.val()=='') {
    model.addClass('hightlight');
    return false;
    } else model.removeClass('hightlight');

    if (year.val()=='') {
    year.addClass('hightlight');
    return false;
    } else year.removeClass('hightlight');

    if (ver.val()=='') {
    ver.addClass('hightlight');
    return false;
    } else ver.removeClass('hightlight');

    if (full_name.val()=='') {
    full_name.addClass('hightlight');
    return false;
    } else full_name.removeClass('hightlight');

    if (phone.val()=='') {
    phone.addClass('hightlight');
    return false;
    } else phone.removeClass('hightlight');

    $('#submit').hide();
    $('#process').show();

    //organize the data properly
    var data = 'marka=' + marka.val() + '&model=' + model.val() + '&year=' + year.val() + '&ver=' + ver.val() + '&storona=' + storona.val() + '&name=' + full_name.val() + '&phone=' + phone.val() + '&town=' + town.val();

    //disabled all the text fields
    $('.text').attr('disabled','true');

    //show the loading sign
    $('.loading').show();

    //start the ajax
    $.ajax({
    //this is the php file that processes the data and send mail
    url: "query.php",

    //GET method is used
    type: "GET",

    //pass the data
    data: data,

    //Do not cache the page
    cache: false,

    //success
    success: function (html) {
    //if process.php returned 1/true (send mail success)
    if (html==1) {
    //hide the form
    $('.form').fadeOut('slow');

    //show the success message
    $('.done').fadeIn('slow');

    //if process.php returned 0/false (send mail failed)
    } else alert('Ошибка при оформлении заказа');
    }
    });

    //cancel the submit button default behaviours
    return false;
    });
    });
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 29 октября 2012 г. 22:46, спустя 8 минут 39 секунд

    может из-за версии? 1.2.7 - это очень старая как бы
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 29 октября 2012 г. 22:52, спустя 6 минут 7 секунд

    может из-за версии? 1.2.7 - это очень старая как бы

    попробовал 1.7.2 всё тоже самое, с кодом:
    var storona = $('input[name="storona[]"]').filter(':checked').serializeArray();

    вообще перестает всё работать, форма отправляется по html, а не jquery
  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 29 октября 2012 г. 23:47, спустя 55 минут 4 секунды

  • developer

    Сообщения: 244 Репутация: N Группа: Кто попало

    Spritz 29 октября 2012 г. 23:54, спустя 6 минут 53 секунды

    вместо
    		var data = 'marka=' + marka.val() + 
    '&model=' + model.val() +
    '&year=' + year.val() +
    '&ver=' + ver.val() +
    '&storona=' + storona.val() +
    '&name=' + full_name.val() +
    '&phone=' + phone.val() +
    '&town=' + town.val();

    сделал
    var data = $('#griskl').serializeArray();

    и всё работает, ппц, 6 часов над какой-то одной фигнёй протрахался, пойду поиграю в казаков.
    Спустя 22 сек.
    всем ещё раз респект за помощь, про serializeArray вообще не ведал.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!