Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загнать результат в переменную, JS + Smarty 
:(
    Опции темы
sokpet
Дата 29.8.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



Добрый день.

Подскажите пожалуйста как загнать результат в переменную и потом изпользовать ее через Смарти?

есть форма для расчета цены (привожу только нужную часть формы):

Файл: product.tpl

Добавляем переменную базовой цены:

Код

var MainPrice = '{$product->getPrice(true, $smarty.const.NULL)}';


 
Код

 <div id="medida1">
        <label for="frameLength" class="medida">{l s='Altura (cm):'}</label>
        <input type="text" name="frameLength" onChange="on_the_fly(this.form)" size="6" maxlength="6"/><span class="medida_example">(Ej: 80.27)</span>
    </div>
    <div id="medida2">
        <label for="frameWidth" class="medida">{l s='Anchura (cm):'}</label>
        <input type="text" name="frameWidth" onChange="on_the_fly(this.form)" size="6" maxlength="6"/><span class="medida_example">(Ej: 110.12)</span>
    </div>
    <div>
        <label for="total" class="total">{l s='Subtotal'}</label>
        <input id="total" name="total" disabled="disabled" />
    </div>



В init.php регистрируем функцию Смарти:

Код

$smarty->register_function('on_the_fly', array('Tools', 'displayPriceSmarty'));


В tools.js добавляем саму функцию:

Код

function on_the_fly(formObj){
    var length = new Number(formObj.frameLength.value);
    var width = new Number(formObj.frameWidth.value);
    var basePrice = ((2 * length) + (2 * width))/100;
    var price = basePrice * MainPrice;
    formObj.total.value = price.toFixed(2); ;
}



До этого момента ВСЕ РАБОТАЕТ.  А вот как результат, который получается в
 
Код

<input id="total" name="total" disabled="disabled" /> 
 загнать в переменную и после этого использовать вот в таком контексте :


Код

<span id="our_price_display">{convertPrice price=$product->getPrice(true, $smarty.const.NULL)} //Вместо этого нужно высвечивать полученный результат


Подскажите плиз.

Заранее всем спасибо
PM MAIL   Вверх
bars80080
Дата 29.8.2010, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



вам прежде всего сюда: http://phpfaq.ru/na_tanke

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


PM MAIL WWW   Вверх
sokpet
Дата 29.8.2010, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 13.1.2008

Репутация: нет
Всего: нет



Переменную нужно загнать на открытой странице + еще на одну после перехода на нее.... 
PM MAIL   Вверх
bars80080
Дата 30.8.2010, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



на открытой странице вы можете сделать максимум следующее - получить переменную в javascript, отправить ajax-запрос с этой переменной на сервер к модулю, который вернёт вам нужный кусок хтмл-разметки, и вставить с помощью javascript эту разметку куда надо

на сервере при этом данная переменная может быть получена из глобальных массивов $_GET или $_POST, а затем уже вставлена обычным способом в шаблон


если же после перехода, то данную переменную надо всего лишь засунуть в соответствующий параметр. к примеру, если переход будет осуществляться кликом по ссылке, то надо будет в хвост к ссылке дописать ?param=peremen, после чего на сервере данная переменная может быть получена из $_GET['param'], а затем уже вставлена обычным способом в шаблон
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0462 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.