• Страница 1 из 1
  • 1
Модератор форума: JonMagon  
Передача переменной через кнопку buynow
bulken
Сообщений: 41
Репутация: 0

Сообщение # 1 | 23:28:48
Ребята, вопрос такой...необходимо передать параметр в адресную через кнопку купить сейчас, то бишь пришить js к php.

Кто поможет, тому на сотовый 500 р, очень надо!

в странице служебных форм код такой:

<script type="text/javascript">
function b(){
buyNow1('$ID$','id');
}
</script>

<div class="buy-opts">

<?if($BUY_NOW$)?>
<?if($STOCK$<='0')?>
<div id="id-$ID$-buynow" class="buy-btn" onclick='b()'><!--<s5454>-->Заказать<!--</s>--></div>
<?else?>
<div id="id-$ID$-buynow" class="buy-btn" onclick='b()'><!--<s5454>-->Купить сейчас<!--</s>--></div>
<?endif?>
<?endif?>

<script type="text/javascript" language="javascript"><!--
var lock_buttons = 0;
function buyNow1(id,pref){
if(lock_buttons) return false; else lock_buttons = 1;
var opt = new Array();
$('#b'+pref+'-'+id+'-buynow').attr('disabled','disabled');
$('#'+pref+'-'+id+'-buynow').removeClass('done').removeClass('err').removeClass('now').addClass('wait').attr('title','');
$('#'+pref+'-'+id+'-options').find('input:checked, select').each(function(){ opt.push(this.id.split('-')[3]+(parseInt(this.value) ? '-'+this.value :''));};);
_uPostForm('',{type:'POST',url:'/shop/basket',data:{'mode':'add', 'id':id, 'pref':pref, 'opt':opt.join(':'), 'cnt':$('#q'+pref+'-'+id+'-basket').attr('value'), 'now':1}};);
return false;
location.href += '?parametr';
}
$('#cart-total').bind('click', function() {

$('#cart-content').show(3000).css('opacity',0.97);
$('#shop-cart').bind('mouseleave', function() {
$('#cart-content').hide(3000);
};);

};);
//--></script>

Как сделать так, чтобы при переходе на страницу заказа была ссылка не /shop/checkout, а shop/checkout'?parametr
Solaris(Olga)
Сообщений: 342
Репутация: 240

Сообщение # 2 | 00:06:10
Не уверена, подойдет ли этот способ. Но почему бы не хранить параметры в локалсторче, а потом на целевой странице их не вынимать и не передавать их в строку браузера через хистори.пушстейт?

В localstorage заносить и получать данные можно через getItem() и setItem().

+ как пример - рабочий пример кнопки передающей что-то в браузерную строку. Вместо 'school' используем что угодно - любые переменные.
Код
Код
<button type="button" id="myButton" onclick="history.pushState({page: 3}, 'title 3', 'school');">Change URL now!</button>


Или как-то мудрено можно заносить ссылку с параметрами в историю (хистори АПИ), а при переходе на целевую страницу считывать ее из истории.
Сообщение отредактировал Solaris(Olga) - Воскресенье, 10 Ноя 2013, 00:08:43
superuser_0
Сообщений: 11
Репутация: 2

Сообщение # 3 | 00:19:41
bulken, поменяйте эти строки местами и все у вас заработает.

return false;
location.href += '?parametr';


на

location.href += '?parametr';
return false;


Solaris(Olga), локальное хранилище не поддерживает IE до 8 версии. Так как речь идет об интернет магазине, то, как я считаю, нельзя игнорировать тех пользователей, которые пользуются старыми версиями этого браузера. Локальное хранилище необходимо использовать только в том случаи, если необходимо передать не какой-то параметр, который можно передать через обычные и куки, а значительную часть текста.
Сообщение отредактировал superuser_0 - Воскресенье, 10 Ноя 2013, 00:24:39
Rad_van_Cor
Сообщений: 1179
Репутация: 437

Сообщение # 4 | 00:22:55
Цитата superuser_0 ()
я считаю, нельзя игнорировать тех пользователей, которые пользуются старыми версиями этого браузера.
Не только можно, а нужно.
Пускай приучаются использовать нормальные браузеры а не IE wink

bulken
Сообщений: 41
Репутация: 0

Сообщение # 5 | 10:33:40
Цитата superuser_0 ()
Change URL now!
Привет superuser_0
при замене местами return false; и location.href += '?parametr'; при нажатии на кнопку buynow не осуществляется переход на страницу заказа /shop/checkout А ?parametr дописывается к существующей ссылке на странице товара
  • Страница 1 из 1
  • 1
Поиск:
Telegram
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!