Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача значения переменной в JavaScript (https://javascript.ru/forum/misc/39436-peredacha-znacheniya-peremennojj-v-javascript.html)

stskr 30.06.2013 10:36

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

Вот элемент, из которого я хочу считать значение:
<input type="text" name="<?echo $arParams["PRODUCT_QUANTITY_VARIABLE"]?>" value="1" id="qtty" style="width: 16px; height: 16px;">



Есть такой скрипт:

$('a.ajax').click(function() {
	if(!$.returnFlag)
	{
		var qtty = document.getElementById('qtty');
		var data = {};
		data['qtty'] = $('#qtty').val();
		
		$.get(
			$(this).attr('href')+'&QTTY='+qtty.value,
			data,
			function (result) {
				var el = document.getElementById(result['id']);
				el.innerHTML = 'В корзине';
				$('#'+result['id']).removeClass('ajax');
				$('#'+result['id']).removeClass('byi');
				$('#'+result['id']).addClass('byi2');
				$.returnFlag = true;
				el.href = '/personal/cart/';
				ajaxCars();
				alert("Data Loaded: " + data);
			},
			"json"
		);
		
		return false;
	}
});


Он срабатывает при клике по данной ссылке:
<p><strong><a href="<?=$addSrc?>" id="add<?=$arResult["ID"]?>" class="<?=$addClass?>"><?=$addLetter?></a></strong></p>



Переменные для ссылки формируются так:

$addSrc = '/ajax/addto/ajax_backend.php?IBLOCK_ID='.$arResult["IBLOCK_ID"].'&ID='.$arResult["ID"].'&TO=basket';
$addClass = 'add ajax byi';
$addLetter = 'Купить';



Само значение 'qtty' в скрипт передается - наблюдал через отладчик, но не передается в запрос GET. Я получаю сообщение:
Data Loaded: [object Object]

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

vadim5june 30.06.2013 11:17

Цитата:

Сообщение от stskr
Я получаю сообщение:
Data Loaded: [object Object]

так Вы же пишите alert("Data Loaded: " + data);
а data -объект
если напишите
alert("Data Loaded: " + data['qtty']);

то увидите содержимое

stskr 30.06.2013 15:13

Написал. Получаю Data Loaded: undefined.

Передаю данные как в примере в документацию:

$.get(
			$(this).attr('href')+'&QTTY='+qtty.value,
			{ name: "John", time: "2pm" },
			function (result) {
				var el = document.getElementById(result['id']);
				el.innerHTML = 'В корзине';
				$('#'+result['id']).removeClass('ajax');
				$('#'+result['id']).removeClass('byi');
				$('#'+result['id']).addClass('byi2');
//				$('#'+result['id']).click(function() {window.location = this.href;});
				$.returnFlag = true;
				el.href = '/personal/cart/';
				ajaxCars();
			},
			"json"
		)
		.done(function(data) { alert("Data Loaded: " + data['name']);})
		.fail(function() { alert("Ajax Error"); });


И снова получаю: undefined

dmitriymar 30.06.2013 15:17

Цитата:

Сообщение от stskr
Передаю данные как в примере в документацию:

читайте документацию ещё раз и ещё раз . пока не поймете что за что отвечает. причём предача данных к получаемым данным в ответ?

и именно ответ сервера приходит в функцию -посмотреть его можно через инструменты разработчика встроенные в любой браузер

stskr 30.06.2013 15:51

Цитата:

Сообщение от dmitriymar
читайте документацию ещё раз и ещё раз . пока не поймете что за что отвечает. причём предача данных к получаемым данным в ответ?

и именно ответ сервера приходит в функцию -посмотреть его можно через инструменты разработчика встроенные в любой браузер

Не понял. Можно подробнее?

vadim5june 30.06.2013 16:18

в 7 строчке поставьте
alert("Data : " + data['qtty']);

если будет выводится-значит на сервер передается

stskr 01.07.2013 17:12

Цитата:

Сообщение от vadim5june (Сообщение 259330)
в 7 строчке поставьте
alert("Data : " + data['qtty']);

если будет выводится-значит на сервер передается

Да, так работает.

А как передать это значение внутрь $.get ?

danik.js 01.07.2013 17:51

Указать вторым параметром.

stskr 01.07.2013 17:57

Цитата:

Сообщение от danik.js (Сообщение 259469)
Указать вторым параметром.

См. код выше.

danik.js 01.07.2013 18:11

Цитата:

Сообщение от stskr
См. код выше.

Ну в коде идет отправка параметров name и time. А в чем проблема то?


Часовой пояс GMT +3, время: 20:09.