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

danik.js 01.07.2013 18:12

Цитата:

Сообщение от stskr
'&QTTY='+qtty.value

Это можно также в объект data засунуть. Ибо в результате то все равно будет сформирована query-строка из параметров, ибо запрос создается типа GET, а не POST

stskr 01.07.2013 18:22

Мне нужно, чтобы при помощи скрипта к данной ссылке:
$addSrc = '/ajax/addto/ajax_backend.php?IBLOCK_ID='.$arResult["IBLOCK_ID"].'&ID='.$arResult["ID"].'&TO=basket';

добавлялось '&QTTY=qtty', где qtty - это значение, переданное в скрипт
здесь: var qtty = document.getElementById('qtty');

danik.js 01.07.2013 19:06

Часть url-а, начинающаяся от знака ? и есть query-строка. jQuery как раз перед запросом засовывает параметры в эту строку.

stskr 01.07.2013 19:47

А что выполняется раньше: скрипт в этом файле или
/ajax/addto/ajax_backend.php?

В файле /ajax/addto/ajax_backend.php есть такой код.

if(!intval($_REQUEST['QTTY']))
		$_REQUEST['QTTY'] = 1;
	else
		$_REQUEST['QTTY'] = intval($_REQUEST['QTTY']);
	
	Add2BasketByProductID(intval($_REQUEST['ID']), $_REQUEST['QTTY']);


Но переменная $_REQUEST['QTTY'] туда никогда не передается,
т. е. этот код не работает. Почему?

danik.js 01.07.2013 20:21

Изучай запрос на вкладке "сеть" в отладчике браузера

stskr 01.07.2013 23:02

В общем, запрос формируется правильно.
А как посмотреть, что происходит внутри /ajax/addto/ajax_backend.php ?

Если написать просто echo, то в браузер ничего не выведется.
Можно ли, например, сделать всплывающее окно, в котором выводить имя переменной?

stskr 03.07.2013 21:16

Попробовал заменить запрос GET на POST - тоже самое: переменная не передается! По-прежнему, undefined.

$('a.ajax').click(function() {
	if(!$.returnFlag)
	{
		var qtty = document.getElementById('qtty');
		var data = {};
		data['QTTY'] = $('#qtty').val();
		
		$.post(
			$(this).attr('href'),
			data,
			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("Quantity: " + data['QTTY']);})
		.fail(function() { alert("Ajax Error"); });
		
		return false;
	}
});


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