Вход

Просмотр полной версии : Как перечислить JS


SnezhanaLast
01.04.2016, 15:34
Здравствуйте, дорогие форумчане. Нужна ваша помощь. Есть код JS корзины:
data: {PHONE: $('.order_form_fields .phone').val(), NAME: $('.user_name').val(),DELIVERY_NAME: $('.delivery_list option:selected').text(),ORDER_EMAIL: $('.order_email').val(), ADDRESS: $('.user_address').val(), DISTRICT: $('.delivery_list').val(), ORDER_STATUS_ID: 'new', PROMOCODE: $('.promo_value').val(), PAY_SYS: payment_id, PAY_SYS_TEXT: payment_text,DELIVERY_PRICE:$('.delivery_price_val ue').text(),PERSONS: $('.persons').val(),CHANGE: $('.need_short_change').val(),ONLINE_PAY_STATUS: ops}
Как мне перечислить
ADDRESS: $('.user_address').val()
Пробовала
ADDRESS: $('.user_address .user_street .user_home').val()
Не сработало. На почту приходило пустое поле. С JS только знакомлюсь.
Может глупо, но пробовала еще вот так
ADDRESS: $('.user_address, .user_street, .user_home').val() Приходит только первое значение.

Cuntmann
01.04.2016, 20:02
Для ознакомления с JS можете выбрать пример и попроще. Чисто для начала, разумеется.

SnezhanaLast
02.04.2016, 19:16
Cuntmann, В том-то и дело, что это не пример, а реальная задача. :(

protoquest
02.04.2016, 19:25
SnezhanaLast,
надо узнать, что это за тип. Я JQ не знаю, но предполагаю, что .val() обычно возвращает строку. сделайте typeof data.ADDRESS, затем перечисляйте в соответствии с типом. Если строка -- парсить, если объект -- for in, если массив -- forEach

рони
02.04.2016, 19:32
SnezhanaLast,
$('.user_address .user_street .user_home') циклом по этому селектору

Dilettante_Pro
02.04.2016, 19:32
SnezhanaLast,
Jquery берет данные из html. Без html невозможно понять, что у вас не так

SnezhanaLast
02.04.2016, 19:40
рони, Пробовала, приходит пустое значение. :(

<div class="ln">
<span class="txt"><?=GetMessage("ADRESS_DELIVERY");?><i>*</i></span>
<textarea class="required user_street" style="resize: none;" rows="5" cols="5" placeholder="<?=GetMessage("DELIVERY_STREET");?>"></textarea>
<textarea class="required user_home" style="resize: none;" rows="5" cols="5" placeholder="<?=GetMessage("DELIVERY_HOME");?>"></textarea>
</div>


Пример PHP.

рони
02.04.2016, 19:51
SnezhanaLast,
какой формат данных нужен напишите

рони
02.04.2016, 19:58
SnezhanaLast,
<!DOCTYPE HTML>

<html>

<head>
<title>Untitled</title>
<meta charset="utf-8">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

<script>
$(function(){
var a = $.map($('.user_address, .user_street, .user_home'),function(el) {
return el.value
}) ;
alert(JSON.stringify(a)) ;


})
</script>
</head>

<body>
<div class="ln">
<span class="txt"><i>*</i></span>
<textarea class="required user_street" style="resize: none;" rows="5" cols="5" placeholder="">street</textarea>
<textarea class="required user_home" style="resize: none;" rows="5" cols="5" placeholder="">home</textarea>
</div>

</body>

</html>

SnezhanaLast
03.04.2016, 18:24
Нужно чтобы данные приходили одной строчкой, через запятую.
Вот более подробный JS. Спасибо за помощь. :)


$.ajax({
type: 'POST',
url: '/iconthandlers/order.php?t='+new Date().getTime(),
dataType: 'json',
data: {PHONE: $('.order_form_fields .phone').val(), NAME: $('.user_name').val(),DELIVERY_NAME: $('.delivery_list option:selected').text(),ORDER_EMAIL: $('.order_email').val(), ADDRESS: $('.user_street .user_home .user_acces .user_apartment').val(), DISTRICT: $('.delivery_list').val(), ORDER_STATUS_ID: 'new', PROMOCODE: $('.promo_value').val(), PAY_SYS: payment_id, PAY_SYS_TEXT: payment_text,DELIVERY_PRICE:$('.delivery_price_val ue').text(),PERSONS: $('.persons').val(),CHANGE: $('.need_short_change').val(),ONLINE_PAY_STATUS: ops},
success: function (order_id) {
$('.out_sum').val($('.cart_btn span').text().split(' ').join(''));
$.cookie('order_id',order_id,{path:'/'});
$('.cart_btn').find('span').text('').parent().remo veClass('cart_full').addClass('cart').html("");
renderGiftScale(0);
refreshGifts(0);
refreshGiftsInCart(0);
var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
var goods = new Array();


В данном коде приходит все, кроме ADDRESS, если написать просто:


ADDRESS: $('.user_address').val()


Один класс приходит без проблем. :(

рони
03.04.2016, 18:42
SnezhanaLast,
смотрите код выше - нужна строка a = a.join(",");
ADDRESS: a

рони
05.04.2016, 12:43
SnezhanaLast,
бред какой-то ...
var a = $.map($('user_street, .user_home, .user_acces, .user_apartment'), function(el) {
return el.value
});
a = a.join(",");
$.ajax({
type: 'POST',
url: '/iconthandlers/order.php?t=' + new Date().getTime(),
dataType: 'json',
data: {
PHONE: $('.order_form_fields .phone').val(),
NAME: $('.user_name').val(),
DELIVERY_NAME: $('.delivery_list option:selected').text(),
ORDER_EMAIL: $('.order_email').val(),
DISTRICT: $('.delivery_list').val(),
ORDER_STATUS_ID: 'new',
PROMOCODE: $('.promo_value').val(),
PAY_SYS: payment_id,
PAY_SYS_TEXT: payment_text,
DELIVERY_PRICE: $('.delivery_price_value').text(),
PERSONS: $('.persons').val(),
CHANGE: $('.need_short_change').val(),
ONLINE_PAY_STATUS: ops,
ADDRESS: a
},
success: function(order_id) {
$('.out_sum').val($('.cart_btn span').text().split(' ').join(''));
$.cookie('order_id', order_id, {
path: '/'
});
$('.cart_btn').find('span').text('').parent().remo veClass('cart_full').addClass('cart').html("");
renderGiftScale(0);
refreshGifts(0);
refreshGiftsInCart(0);
var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
var goods = new Array();

}
})

SnezhanaLast
05.04.2016, 13:27
рони, Большое Вам спасибо! Код отлично работает. :)