Записки разработчика

11.01.2013

Перебор ключей массива в текстовых полях

Иногда нужно отдать ajax-запросу набор данных, получив их их текстовых полей.

Например, задача. У нас есть интернет-магазин. На странице каталога перечислены товары. И рядом с каждым — текстовое поле «количество» и кнопка «купить». Задачу поставим таким образом: пользователь вводит в разные поля числа, сколько бы он хотел купить того или иного товара (пусть у нас будет оптовый магазин).

Посмотрим изнутри: у нас есть несколько полей:


....

....

В квадратных скобках ID единиц товара. По нажатии кнопки нам надо перебрать все поля, и где значние value не равно 0 добавить в корзину (вопрос проверки существования этих позиций в корзине мы опустим).

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

Вообщем — пример работающего кода (jquery, javascript):

var data = $('input:text[name*=quantity]');
$.each(data, function(key,object){
    var name = object.name;
    i1 = name.indexOf("[");
    i2 = name.indexOf("]");
    var id_val = name.substring(i1 + 1, i2);
    var quantity_val = object.value;
}

Мы получаем и ID, и значение. Т.е. все то что нам нужно для проверки состояния корзины.

admin @ 20:04


 

Powered by WordPress