Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как правильно передавать данные из/в модуль из базы (делаю календарь)


Recommended Posts

Искал календарь под себя, чтоб выводил события из базы по датам, не нашел, написал сам.

 

Но сделал это не как модуль, а просто вставил код в темплейт. Теперь хочу сделать модулем и натолкнулся на следующие вопросы:

 

Первый, возможно дурацкий.

 

Сейчас для перехода на год назад и вперед на главной стоит захардкоженая ссылка: <a href="http://studymarket.com.ua/news/calend2.php?year=2014&today=11&month=3">

 

Ajax и Jquery не используются, но вроде при нажатии календарь автоматом апдейтит даты без перегрузки главной страницы (смотреть со страницы http://studymarket.com.ua ). Почему так? :)

 

 

Второй: как сделать правильно так, чтобы при переходе на год назад и вперед брались данные из базы  и не пихать хардкод в какой-то внешний php , которой заливать вместе с модулем, а получать данные как-то правильно через систему модуля/модели.

 

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

 

Если что скрипт календаря можно глянуть здесь: http://studymarket.com.ua

 

Спасибо за любую информацию

 

 

Надіслати
Поділитися на інших сайтах


В календаре ссылки должны быть на модуль который генерирует список "статей" в котором должен быть обработчик этих переменных

Надіслати
Поділитися на інших сайтах

говоришь

написал сам

потом

Ajax и Jquery не используются...

а оказывается используются, ибо

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

- - -

кодировку не настроил.

- - -

Второй: как сделать правильно так, чтобы при переходе на год назад и вперед брались данные из базы и не пихать хардкод в какой-то внешний php , которой заливать вместе с модулем, а получать данные как-то правильно через систему модуля/модели.

ниче не понял.

какие данные? в каком формате?

ты распиши подробно - что ты хочешь.

Надіслати
Поділитися на інших сайтах

говоришь

потом

а оказывается используются, ибо

- - -

кодировку не настроил.

- - -

ниче не понял.

какие данные? в каком формате?

ты распиши подробно - что ты хочешь.

кодировка сейчас не суть, я сделаю без проблем

 

1. Первый вопрос и был задан потому что нет в скрипте ни аякса ни jquery. Код вписан в модуль, модуль включен и вставлен в страницу. Мое мнение что опенкарт как-то переделывает хардкоженые линки модуля так чтобы они грузились в странице, а не делался переход. Возможно через .htaccess . Поэтому и спрашиваю. 

 

2. Основное что мне непонятно: (вопрос к тем, кто писал модули)

 

Сейчас есть так:

 

обычный шаблонный дефолтный модуль

в /template/modul/моймодуль.tpl вписан код, который выдает календарь с днями.

Чтобы перейти на другую дату используется ссылка  http://studymarket.com.ua/news/calend2.php?year=2014&today=11&month=3

то есть используется левый файл, а не так как делается по шаблону, где как-то идет обмен данными между базой данными и модулем

 

мне надо чтобы в выданном модуле календаря на страницу

 

1. При нажатии вперед/назад запускался аяксовый обработчик (это я сделаю)

2. На какой-то файл передавались данные с годом, месяцем и данными (как это сделать по правильному в разработке модуля)

 

    ВОПРОС: куда передавать данные (где по правильному должен лежать этот файл, который по $_GET[] запросу возьмет информацию из базы, обработает и выдаст результат? как я понимаю левые файлы при разработке модулей не приветствуются, все надо делать через     обработчики и модели. Вот с этим я не разобрался поэтому и спрашиваю. Информации как таковой не смог найти для того что мне надо

 

3. Брались данные и этот <div> календаря  с новыми датами в календаре обновлялся (это тоже я сделаю)

Надіслати
Поділитися на інших сайтах


Смотреть сюда:

            $this->children        = array(
                'common/column_left',
                'common/column_right',
                'common/content_top',
                'common/content_bottom',
                'common/footer',
                'common/header'
            );
Надіслати
Поділитися на інших сайтах

var url = 'index.php?route=module/my_module/MyFunction';

$.ajax({
      url: url,
      type: 'GET',
      data: $('.datapicker').datepicker('getDate'),
      dataType: 'json',
      success: function(msg){
         alert(msg['you_callback']);
      }
   }
);

как то так, контроллер же модуля по адресу: catalog/controller/module/my_module.php должен содержать в себе public MyFunction который и будет обрабатывать $_GET параметры (где по правильному должен лежать этот файл, который по $_GET[] запросу возьмет информацию из базы, обработает и выдаст результат?)

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Вроде понял. 

 

Сделал в /catalog/controller/module/myModul.php функцию

 

public function MyFunction() {
       print "test";
return TRUE;
}
 
 
открывается слово test
 
Не могу понять такую проблему. В /catalog/view/theme/bigshop/template/module/myModul.tpl сделал тестовую ссылку
 
   <a id="test">test</a>
 
и делаю jquery запрос

  <script>
 $(function(){
$('#test').click(function(){
    alert('Before load');
 $.get( "http://studymarket.com.ua/index.php?route=module/myModul/MyFunction", function( data ) {
  alert( "Load was performed." );
});
});
  });
</script>
 
И проблема в том, что именно эту ссылку с http://studymarket.com.ua/index.php?route=module/myModul/MyFunction  оно не грузит, (не выдается "Load was performed."), а любую другую, например просто http://studymarket.com.ua грузит. В чем здесь фокус?
Надіслати
Поділитися на інших сайтах


решил через .load

$("#test1").load("http://studymarket.com.ua/index.php?route=module/myModul/MyFunction", {parameters: 25}, function(data){
   $("#test1").append(data);
});

Но все равно не понятно почему при .get  получается 500 (Internal Server Error)

Надіслати
Поділитися на інших сайтах


при load то же самое было (тестил из консоли перед тем, как написать про 500).

так ты ошибки поднимай из логов и устраняй - чего гадать зря?

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.