Страница 1 из 1

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

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

В 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);
   }
  }
вроде бы всё отрабатывает, НО - во-первых экран при этом перерисовывается, а во-вторых когда ставишь галочку во второй раз, то ничего не происходит. Есть ли у уважаемых участников форума какие-нибудь рецепты на этот случай?

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

Добавлено: Пн май 28, 2018 4:29 pm
webms
хм
всегда были проблемы с js
хотя, очень крутые штуки на нем иногда получается придумывать

честно - я хз как помочь)

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

Добавлено: Пн май 28, 2018 4:46 pm
skysilver
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); // вывод ответа на страничку
   }
});