jQuery.ajax в joomla3

  • 3 Ответов
  • 292 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн limon142

jQuery.ajax в joomla3
« : 25.12.2016, 12:09:20 »
Прошу помощи уважаемые форумчане. Как передать AJAX с записью в БД и вывести оповещение.
Где ошибка не могу понять:
1. подключаю в index.php
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
2. в файле com_test\views\messag\tmpl\default.php пишу
 
<?php
defined
('_JEXEC') or die;
<
script type="text/javascript">
function 
add_favorites(add)
jQuery.ajax({
type 'POST',
url 'index.php?option=com_test&view=messag',
data : { 'task'"add_favorites",
            'add'add},
    success : function(resulterrors
{ if ("ok" == result)
{alert("&#1059;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1086;"); }
else { alert("&#1055;&#1088;&#1086;&#1080;&#1079;&#1086;&#1096;&#1083;&#1072; &#1086;&#1096;&#1080;&#1073;&#1082;&#1072; &#1087;&#1088;&#1080; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1080;");
}}}); }
</script>
<div class="pa">
<a href="#"  title="&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; " onclick="add_favorites(<?php echo $val->id ?>
);return false;">Добавить</a>
  </div>

3. в контроллере com_test\controllers\messag.php
<?php
defined
('_JEXEC') or die;
class 
TestControllerMessag extends JControllerLegacy {
 public function add_favorites(){
   $database JFactory::getDbo();
   $user  JFactory::getUser();
   $add JRequest::getVar('add'); 
   $sql ='INSERT INTO #__test (u_id,p_id)
       VALUES ('
.$user->get('id',0).','.$add .')';
$database->setQuery($sql);
$database->query();
exit ('ok');
die();
}}


Но почему то не записывает данные в БД и не выводить положительный ответ "Успешно добавлено".
Помогите разобраться.
« Последнее редактирование: 25.12.2016, 15:04:02 от limon142 »

*

Оффлайн limon142

Re: jQuery.ajax в joomla3
« Ответ #1 : 25.12.2016, 17:42:59 »
Я так понимаю, что jQuery.ajax отрабатывается, на потом в контроллер нечего не попадает и соответственно не возвращает   ('ok'). НО почему подскажите.

*

Оффлайн Arkadiy

  • *****
  • 5339
  • [+]440 / [-]0
  • Крепитесь, други.
    • Просмотр профиля
    • http://argens.ru
Re: jQuery.ajax в joomla3
« Ответ #2 : 25.12.2016, 18:14:18 »
Откройте отладку в браузере, посмотрите какой URL у вас получился в этом запросе, какой статус ответа, какой ответ, попробуйте явно указать тип принимаемых данных AJAX запроса как текст.

*

Оффлайн limon142

Re: jQuery.ajax в joomla3
« Ответ #3 : 26.12.2016, 06:20:52 »
Все разобрался, вдруг кому пригодится:
1- функционал рабочий за исключение адреса обработчика который надо поправить (здесь на форуме где то есть ответ) url : 'index.php?option=com_test&view=messag',
2- а в самой joomla3 есть готовые решения (плюшки) для того этого функционала? Если кому не трудно показать на моем примере, я думную начинающим будет  полезно.