Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля
13.01.2011, 05:57
I_CaR

Зарегистрирован:
2010-11-30
Сообщений: 84

Здравствуйте, реализовал на сайте вот такое, есть товар - корзина активна, нет товара - неактивна:
Цитата:
" . opt_case($f_StockUnits, "<button type='submit'><img src='".$SUB_FOLDER."/images/i_cart.gif'></button>" , "<button type='submit' disabled='disabled'><img src='".$SUB_FOLDER."/images/i_cart_off.gif'></button>")."

Но рабо(то)датель желает, чтоб если товара нет, был выбор ложить его в корзину или нет. Реализовал вот так:
Цитата:

<script language="JavaScript"> (примеч.автора - на сайте одинарные ковычки! - <script language='JavaScript'>)
function Choice()
{
if (confirm('Товара сейчас нет в наличии\n Всё равно поместить его в карзину?'))
{
submit
}
else
{
alert('Действие было отменено.');
}
}
</script>


<input type='submit' value='в корзину' onClick='Choice()'>


Дело в том, что на локальном ПК это работает, т.е. выскакивает окно confirm'a, на моем хостинге (бесплатном) это тоже работает, а вот на хостинге магазина (платном) нет.

Я предполагаю тут дело не в хостинге, а в восприятии скриптов NetCat'ом.
Какая есть альтернатива этому коду, не очень громоздкая в исполнении?

С Уважением - I.CaR®

информация должна быть СВОБОДНОЙ • www.KrasnoYarsk.front.ru
13.01.2011, 12:01
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Код:
<script language=\"JavaScript\">


Temet nosce...
14.01.2011, 09:06
I_CaR

Зарегистрирован:
2010-11-30
Сообщений: 84

ну это уж через-чур бонально, это начало я скопировал с DreamWeaver'а, в бд там
нормально.
<Script language='JavaScript'>

информация должна быть СВОБОДНОЙ • www.KrasnoYarsk.front.ru
14.01.2011, 10:03
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Тогда проблема к неткету не имеет никакого отношения ибо яваскрипты выполняются на стороне браузера пользователя. Разбирайтесь со своим яваскриптом.

Temet nosce...
14.01.2011, 10:38
I_CaR

Зарегистрирован:
2010-11-30
Сообщений: 84

И браузеры у меня одни и теже, я же и отлажевал страницу и локально и на хостинге одними и теми же браузерами, обычно для разработки тестируют минимум как на 3-х поп браузерах.

Оказывается всё было из-за этого обычного знака переноса на др. строку - \n!

if (confirm('Товара сейчас нет в наличии\n Всё равно поместить его в карзину?'))

И разве это не NetCat его обрабатывает в теле бд, при запросе с браузера пользователя? а потом выдаёт ему результат обработки?

Но вот почему браузер всё равно посылает submit, когда есть же отмена его подтверждения в кейсе opt_case($f_StockUnits? Если товара
> 0, то <button type='submit'></button>, а если
< 0, то <button type='submit' onClick='Choice()'></button>
Тут же идёт подтверждения действия submit, и при Cancel, всё равно товар почему-то попадает в корзину. Могу привести код страницы полностью.

информация должна быть СВОБОДНОЙ • www.KrasnoYarsk.front.ru
14.01.2011, 11:50
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Ф-ия opt_case переданные ей параметры прогоняет через eval - поэтому символ '\n' сработал как перенос строки. Надо поставить экранирующий слеш (или слеши) перед '\n'.

Лучше отказаться от использования opt_case, заменив ее на (условие?условие_выполнено:условие_не_выполнено)

и еще поправьте:
Код:
if (confirm('Товара сейчас нет в наличии\n Всё равно поместить его в кОрзину?'))


Temet nosce...
198 196 2011-01-14 11:50:53 10958
Описание проекта