JS и PHP в Мажордомо
Добавлено: Вс май 27, 2018 2:02 pm
Делаю сейчас модификацию справочника категорий календаря, у категорий появилось новое поле-флажок, хочется чтобы пользователь мог устанавливать этот флажок прямо из справочника, не переходя в режим редактирования одной записи. Так вот - пытаюсь всё это реализовать при помощи джаваскрипта
В html шаблоне
код отвечающий за вывод поля AT_CALENDAR
и скрипт отрабатывающий после клика на чекбокс
в основном модуле app_calendar.class.php добавил код
вроде бы всё отрабатывает, НО - во-первых экран при этом перерисовывается, а во-вторых когда ставишь галочку во второй раз, то ничего не происходит. Есть ли у уважаемых участников форума какие-нибудь рецепты на этот случай?
В 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>
Код: Выделить всё
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);
}
}