Jump to content


Photo
- - - - -

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


Best Answer 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 вам по сути не нужна. Go to the full post


  • This topic is locked This topic is locked
9 replies to this topic

#1 kuzmahan

kuzmahan
  • JBZoo User (rus)
  • User rate: 0.3
  • posts: 96
  • topics: 22

Posted 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' />
 
Все что нужно в скрипте есть, но выдает ошибки следующие (см. картинку). Отсюда вопрос, что не так?
С уважением

Attached Thumbnails

  • ScreenShot 25.png

Edited by Sliapy, 01 November 2013 - 17:57.
Используйте кнопку "Код"

  • 0

#2 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 02 November 2013 - 05:48   Best Answer

$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
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.3
  • posts: 96
  • topics: 22

Posted 02 November 2013 - 07:53

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

 

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

 

С уважением


  • 0

#4 kuzmahan

kuzmahan
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.3
  • posts: 96
  • topics: 22

Posted 02 November 2013 - 09:03

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

  • 0

#5 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 02 November 2013 - 09:41

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



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


#6 kuzmahan

kuzmahan
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.3
  • posts: 96
  • topics: 22

Posted 02 November 2013 - 10:01

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


  • 0

#7 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 02 November 2013 - 14:22

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

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



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


#8 kuzmahan

kuzmahan
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.3
  • posts: 96
  • topics: 22

Posted 02 November 2013 - 14:40

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

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

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

 

С уважением

Attached Thumbnails

  • ScreenShot 27.png

  • 0

#9 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 02 November 2013 - 14:44

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

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



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


#10 kuzmahan

kuzmahan
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.3
  • posts: 96
  • topics: 22

Posted 02 November 2013 - 15:06

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


  • 0




Click to return to top of page in style!