Перейти к содержимому


Фотография
- - - - -

Скрипт расчета доставки и выборки из БД элемента по ID


Лучший Ответ SmetDenis , 02 November 2013 - 05:48

$item = $zoo->table->item->get(69); // тут должен быть ID материала
$element = $item->getElement('c3780593-7d55-4aa4-b53f-04d700b5bee3'); // берем элемент по ID
print_r($element->data());
yzg_200x0.png

6kc_200x0.png

Переменная $db вам по сути не нужна. Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 9

#1 kuzmahan

kuzmahan

Отправлено 01 November 2013 - 17:53

Добрый день

 

В продолжение темы про запрос из БД. Вот, что у меня получилось на данный момент:

<?php

$db =& JFactory::getDBO();
$zoo = App::getInstance('zoo');
$item = $zoo->table->item->get('c3780593-7d55-4aa4-b53f-04d700b5bee3');
$datavalue = $item;
?>


<script type="text/javascript">
function DeliveryCalc() {
    var t=+document.getElementById('kolichestvo').value
    var s=+document.getElementById('price').value
var d = <?php echo $datavalue ?>;
    var c=document.getElementById('resultat').value=parseFloat(t*s*d*250).toFixed(2)+" руб."
}
</script>


<select size="1" id="kolichestvo" onchange='DeliveryCalc()'>
<option value="0">Выберите количество</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<select size="1" id="price" onchange='DeliveryCalc()'>
<option value="0">Выберите город</option>
<option value="0.5">Казань</option>
<option value="2">Воронеж</option>
<option value="12.3">Астрахань</option>
</select>
<input type='text' id='resultat' />
 
Все что нужно в скрипте есть, но выдает ошибки следующие (см. картинку). Отсюда вопрос, что не так?
С уважением

Прикрепленные изображения

  • ScreenShot 25.png

Сообщение отредактировал Sliapy: 01 November 2013 - 17:57
Используйте кнопку "Код"

  • 0

#2 SmetDenis

SmetDenis

Отправлено 02 November 2013 - 05:48   Лучший Ответ

$item = $zoo->table->item->get(69); // тут должен быть ID материала
$element = $item->getElement('c3780593-7d55-4aa4-b53f-04d700b5bee3'); // берем элемент по ID
print_r($element->data());
yzg_200x0.png

6kc_200x0.png

Переменная $db вам по сути не нужна.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 kuzmahan

kuzmahan

Отправлено 02 November 2013 - 07:53

Добрый день Денис

 

Да это помогло, но вот незадача, из БД возвращается такая строка: Array ( [0] => Array ( [value] => 0.06 ) ), где 0.06 как раз то что мне нужно, как присвоить теперь это значение переменной для дальнейшего использования? 

 

С уважением


  • 0

#4 kuzmahan

kuzmahan

Отправлено 02 November 2013 - 09:03

Все понял. 
$v = $element->data();
$datavalue = $v[0]['value'];
 
так, остался последний вопрос: как вставлять ID материала вот сюда (14) для каждой открытой страницы? 
$item = $zoo->table->item->get(14); 
 
С уважением

  • 0

#5 SmetDenis

SmetDenis

Отправлено 02 November 2013 - 09:41

Если вы это делаете в шаблоне full, то у вас там уже есть переменная $item
Иначе подставлять нужное значение вручную.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 kuzmahan

kuzmahan

Отправлено 02 November 2013 - 10:01

Спасибо. Правильно ли я понял, что ID материала никак не подставить запросом из БД?


  • 0

#7 SmetDenis

SmetDenis

Отправлено 02 November 2013 - 14:22

Спасибо. Правильно ли я понял, что ID материала никак не подставить запросом из БД?

Извините, я не понял вопроса.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#8 kuzmahan

kuzmahan

Отправлено 02 November 2013 - 14:40

Извиняюсь за тупняк. Картинку прикрепил. Вот что то на подобии вставить: 

$item = $zoo->table->item->get(echo $item->id;); // тут должен быть ID материала

Для того чтобы в каждый материал (а их у меня 204) не вставлять вручную, а привязать модуль. Удобно с точки зрения администрирования и экономия времени.

 

С уважением

Прикрепленные изображения

  • ScreenShot 27.png

  • 0

#9 SmetDenis

SmetDenis

Отправлено 02 November 2013 - 14:44

Если все это происходит в шаблоне, например full или teaser
то нет смысла запрашивать $item, т.к эта переменная уже есть и вы её получите снова, точно такую же.

Если id везде одинаковый, то объявите константу и везде используйте её.
Объявить константу можно в плагине
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#10 kuzmahan

kuzmahan

Отправлено 02 November 2013 - 15:06

Спасибо Денис за терпение. Но знаний у меня маловато. Думаю вопрос исчерпан. Пойду читать мануалы)


  • 0




Click to return to top of page in style!