JS и PHP в Мажордомо

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

JS и PHP в Мажордомо

Сообщение fandaymon » Вс май 27, 2018 2:02 pm

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

В html шаблоне

код отвечающий за вывод поля AT_CALENDAR

Код: Выделить всё

<td><input type="checkbox" name="atcalendar[#ID#]" class="at_calendar" value="[#ID#]" [#if AT_CALENDAR==1#] checked [#endif AT_CALENDAR#]></td>
и скрипт отрабатывающий после клика на чекбокс

Код: Выделить всё

<script language="javascript">
 $('.at_calendar').click (function ()
  {
  var thisCheck = $(this);
  if (thisCheck.is(':checked')) {
   var url="?data_source=<#DATA_SOURCE#>&mode=category_update&at_calendar=1&id=";
   window.location=url+thisCheck.val();
  } else {
   var url="?data_source=<#DATA_SOURCE#>&mode=category_update&at_calendar=0&id=";
   window.location=url+thisCheck.val();
  }
 }
 );
</script>
в основном модуле app_calendar.class.php добавил код

Код: Выделить всё

if ($this->data_source=='calendar_categories') {
  if ($this->view_mode=='' || $this->view_mode=='search_calendar_categories') {
    if ($this->mode=='category_update') {
     global $id;
     global $at_calendar;
     $rec=SQLSelectOne("SELECT * FROM calendar_categories WHERE ID='".(int)$id."'");
     $rec['AT_CALENDAR']=$at_calendar;
     SQLUpdate('calendar_categories', $rec);
     $this->redirect("?data_source=calendar_categories");
   } 
   else {
    $this->search_calendar_categories($out);
   }
  }
вроде бы всё отрабатывает, НО - во-первых экран при этом перерисовывается, а во-вторых когда ставишь галочку во второй раз, то ничего не происходит. Есть ли у уважаемых участников форума какие-нибудь рецепты на этот случай?
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: JS и PHP в Мажордомо

Сообщение webms » Пн май 28, 2018 4:29 pm

хм
всегда были проблемы с js
хотя, очень крутые штуки на нем иногда получается придумывать

честно - я хз как помочь)
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: JS и PHP в Мажордомо

Сообщение skysilver » Пн май 28, 2018 4:46 pm

fandaymon писал(а):
Вс май 27, 2018 2:02 pm
вроде бы всё отрабатывает, НО - во-первых экран при этом перерисовывается, а во-вторых когда ставишь галочку во второй раз, то ничего не происходит. Есть ли у уважаемых участников форума какие-нибудь рецепты на этот случай?
Перерисовку (обновление страницы) вызывает строчка $this->redirect("?data_source=calendar_categories");

А url-ы из js я дергаю аяксом так:

Код: Выделить всё

// какой-то URL
var url="/ajax/xiaomimiio.html?op=get_miio_info&dip="+ip+"&dtoken="+token;

$.ajax({
   url: url,
   cache: false,
   success: function(html){
      // здесь идет обработка ответа, если он есть
      $("#info").html(html); // вывод ответа на страничку
   }
});
За это сообщение автора skysilver поблагодарили (всего 2):
fandaymon (Пн май 28, 2018 4:58 pm) • webms (Пн май 28, 2018 5:10 pm)
Рейтинг: 2.33%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить