REDDI Опубліковано: 24 листопада 2021 Share Опубліковано: 24 листопада 2021 На странице есть checkbox. Значение меняю через JS $('.maintenanceStatus .customInputYesNo').click(function (event) { if ($(this).is(':checked')){ $(this).prop('checked', true); $(this).val(1); } else { $(this).prop('checked', false); $(this).val(0); } }); Через исходный код значение value меняется. При сохранении, если value = 1 - все ок. Если value = 0 - ошибка, что $this->request->post['config_maintenance'] не существует. Как быть? Заранее благодарю за помощь) Надіслати Поділитися на інших сайтах More sharing options...
Venter Опубліковано: 24 листопада 2021 Share Опубліковано: 24 листопада 2021 8 минут назад, REDDI сказал: На странице есть checkbox. Значение меняю через JS $('.maintenanceStatus .customInputYesNo').click(function (event) { if ($(this).is(':checked')){ $(this).prop('checked', true); $(this).val(1); } else { $(this).prop('checked', false); $(this).val(0); } }); Через исходный код значение value меняется. При сохранении, если value = 1 - все ок. Если value = 0 - ошибка, что $this->request->post['config_maintenance'] не существует. Как быть? Заранее благодарю за помощь) поставить проверку if( isset($this->request->post['config_maintenance']) ) { что то делаем } 1 Надіслати Поділитися на інших сайтах More sharing options... REDDI Опубліковано: 24 листопада 2021 Автор Share Опубліковано: 24 листопада 2021 2 минуты назад, Venter сказал: поставить проверку if( isset($this->request->post['config_maintenance']) ) { что то делаем } Проверку-то поставить можно, но почему 0 не передается? Не могу понять) Надіслати Поділитися на інших сайтах More sharing options... Blast Опубліковано: 24 листопада 2021 Share Опубліковано: 24 листопада 2021 52 минуты назад, REDDI сказал: Проверку-то поставить можно, но почему 0 не передается? Не могу понять) неотмеченные чекбоксы не передаются на сервак. поэтому не важно какое значение вы туда подставляете, можно просто проверять на isset и это даст понимание о состояние чекбокса 1 Надіслати Поділитися на інших сайтах More sharing options... REDDI Опубліковано: 24 листопада 2021 Автор Share Опубліковано: 24 листопада 2021 @Blast Понял) Тогда буду использовать - что есть. Надіслати Поділитися на інших сайтах More sharing options... esculapra Опубліковано: 25 листопада 2021 Share Опубліковано: 25 листопада 2021 13 часов назад, REDDI сказал: Понял) Тогда буду использовать - что есть. Смотри, можно в модель прописать отсутствие параметра. Вот пример public function editSetting($key, $value, $path, $store_id=0) { if(!is_array($value)) { $this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'"); } else { $custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs')); foreach($custom_tabs as $_key=>$_val) { $params[]=array($_key=>$_val); } $params[]=array($value[0]=>$path); $this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'"); } } Может не совсем удобно для понимания... Поясню. Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию. 1 Надіслати Поділитися на інших сайтах More sharing options... esculapra Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 В 25.11.2021 в 11:22, nikifalex сказал: поставить input type hidden value 0 перед input type checkbox и будет вам ноль передаваться. тогда их нужно назвать одинаково, а в обработчике возникнет конфликт по именам. значит нужно добавить js-код, чтобы записать в скрытый инпут значение. но зачем? все нужно сделать в обработчике формы. вот из моей смс (да, частично используется библиотека от джумлы) protected static function UpdateCat($post){ if(!$post['id']) return self::NewCat($post); $arr=array('title','description','alias','metadesc','metakey','shortdesc','parent'); $db = JFactory::getDBo(); $query = "UPDATE #__freelance_cat SET "; foreach($arr as $a){ if(!empty($post['section'.$a])){ if($a=='parent'){ $q['parent'] ="parent=".$post['sectionparent']; } else $q[] =$a."='".$post['section'.$a]."'"; } } $query .=implode(',',$q); $query .=" WHERE cat_id=".$post['id']; $db->setQuery( $query ); if (!$result = $db->query()) { return array('error',JText::_('JLIB_UPDATE_DB_PROBLEMS')) ; } return array('success',JText::_('JLIB_UPDATE_DB_OK')); } и в запросе будет UPDATE #__freelance_cat SET и все поля присутствующие. я не даю готового решения, так как не вижу сам код. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 1 час назад, esculapra сказал: В 25.11.2021 в 12:22, nikifalex сказал: поставить input type hidden value 0 перед input type checkbox и будет вам ноль передаваться. тогда их нужно назвать одинаково, а в обработчике возникнет конфликт по именам. значит нужно добавить js-код, чтобы записать в скрытый инпут значение Это стандартная общепринятая практика во многих фреймворках - вот так создавать чекбоксы - сразу со скрытым инпутом с name тем же, что и у чекбокса и value = 0. В частности, Yii так делает. Никаких конфликтов не возникает. 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 Лучше это сделать через radio пример Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... rabohag Опубліковано: 6 грудня 2021 Share Опубліковано: 6 грудня 2021 (змінено) В 25.11.2021 в 12:15, esculapra сказал: Смотри, можно в модель прописать отсутствие параметра. Вот пример public function editSetting($key, $value, $path, $store_id=0) { if(!is_array($value)) { $this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'"); } else { $custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs')); foreach($custom_tabs as $_key=>$_val) { $params[]=array($_key=>$_val); } $params[]=array($value[0]=>$path); $this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'"); } } Может не совсем удобно для понимания... Поясню. Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Самые свежие новости и события из мира криптовалют и блокчейна https://v-tagile.ru/obschestvo-noyabr-2021/budushchee-kriptovalyut-i-blokchejna. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию. Спасибо огромное за наводку, вроде бы получилось Змінено 6 грудня 2021 користувачем rabohag Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Не передается checkbox value при сохранении Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
REDDI Опубліковано: 24 листопада 2021 Автор Share Опубліковано: 24 листопада 2021 2 минуты назад, Venter сказал: поставить проверку if( isset($this->request->post['config_maintenance']) ) { что то делаем } Проверку-то поставить можно, но почему 0 не передается? Не могу понять) Надіслати Поділитися на інших сайтах More sharing options...
Blast Опубліковано: 24 листопада 2021 Share Опубліковано: 24 листопада 2021 52 минуты назад, REDDI сказал: Проверку-то поставить можно, но почему 0 не передается? Не могу понять) неотмеченные чекбоксы не передаются на сервак. поэтому не важно какое значение вы туда подставляете, можно просто проверять на isset и это даст понимание о состояние чекбокса 1 Надіслати Поділитися на інших сайтах More sharing options... REDDI Опубліковано: 24 листопада 2021 Автор Share Опубліковано: 24 листопада 2021 @Blast Понял) Тогда буду использовать - что есть. Надіслати Поділитися на інших сайтах More sharing options... esculapra Опубліковано: 25 листопада 2021 Share Опубліковано: 25 листопада 2021 13 часов назад, REDDI сказал: Понял) Тогда буду использовать - что есть. Смотри, можно в модель прописать отсутствие параметра. Вот пример public function editSetting($key, $value, $path, $store_id=0) { if(!is_array($value)) { $this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'"); } else { $custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs')); foreach($custom_tabs as $_key=>$_val) { $params[]=array($_key=>$_val); } $params[]=array($value[0]=>$path); $this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'"); } } Может не совсем удобно для понимания... Поясню. Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию. 1 Надіслати Поділитися на інших сайтах More sharing options... esculapra Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 В 25.11.2021 в 11:22, nikifalex сказал: поставить input type hidden value 0 перед input type checkbox и будет вам ноль передаваться. тогда их нужно назвать одинаково, а в обработчике возникнет конфликт по именам. значит нужно добавить js-код, чтобы записать в скрытый инпут значение. но зачем? все нужно сделать в обработчике формы. вот из моей смс (да, частично используется библиотека от джумлы) protected static function UpdateCat($post){ if(!$post['id']) return self::NewCat($post); $arr=array('title','description','alias','metadesc','metakey','shortdesc','parent'); $db = JFactory::getDBo(); $query = "UPDATE #__freelance_cat SET "; foreach($arr as $a){ if(!empty($post['section'.$a])){ if($a=='parent'){ $q['parent'] ="parent=".$post['sectionparent']; } else $q[] =$a."='".$post['section'.$a]."'"; } } $query .=implode(',',$q); $query .=" WHERE cat_id=".$post['id']; $db->setQuery( $query ); if (!$result = $db->query()) { return array('error',JText::_('JLIB_UPDATE_DB_PROBLEMS')) ; } return array('success',JText::_('JLIB_UPDATE_DB_OK')); } и в запросе будет UPDATE #__freelance_cat SET и все поля присутствующие. я не даю готового решения, так как не вижу сам код. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 1 час назад, esculapra сказал: В 25.11.2021 в 12:22, nikifalex сказал: поставить input type hidden value 0 перед input type checkbox и будет вам ноль передаваться. тогда их нужно назвать одинаково, а в обработчике возникнет конфликт по именам. значит нужно добавить js-код, чтобы записать в скрытый инпут значение Это стандартная общепринятая практика во многих фреймворках - вот так создавать чекбоксы - сразу со скрытым инпутом с name тем же, что и у чекбокса и value = 0. В частности, Yii так делает. Никаких конфликтов не возникает. 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 Лучше это сделать через radio пример Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... rabohag Опубліковано: 6 грудня 2021 Share Опубліковано: 6 грудня 2021 (змінено) В 25.11.2021 в 12:15, esculapra сказал: Смотри, можно в модель прописать отсутствие параметра. Вот пример public function editSetting($key, $value, $path, $store_id=0) { if(!is_array($value)) { $this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'"); } else { $custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs')); foreach($custom_tabs as $_key=>$_val) { $params[]=array($_key=>$_val); } $params[]=array($value[0]=>$path); $this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'"); } } Может не совсем удобно для понимания... Поясню. Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Самые свежие новости и события из мира криптовалют и блокчейна https://v-tagile.ru/obschestvo-noyabr-2021/budushchee-kriptovalyut-i-blokchejna. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию. Спасибо огромное за наводку, вроде бы получилось Змінено 6 грудня 2021 користувачем rabohag Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Не передается checkbox value при сохранении Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
REDDI Опубліковано: 24 листопада 2021 Автор Share Опубліковано: 24 листопада 2021 @Blast Понял) Тогда буду использовать - что есть. Надіслати Поділитися на інших сайтах More sharing options...
esculapra Опубліковано: 25 листопада 2021 Share Опубліковано: 25 листопада 2021 13 часов назад, REDDI сказал: Понял) Тогда буду использовать - что есть. Смотри, можно в модель прописать отсутствие параметра. Вот пример public function editSetting($key, $value, $path, $store_id=0) { if(!is_array($value)) { $this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'"); } else { $custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs')); foreach($custom_tabs as $_key=>$_val) { $params[]=array($_key=>$_val); } $params[]=array($value[0]=>$path); $this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'"); } } Может не совсем удобно для понимания... Поясню. Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию. 1 Надіслати Поділитися на інших сайтах More sharing options... esculapra Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 В 25.11.2021 в 11:22, nikifalex сказал: поставить input type hidden value 0 перед input type checkbox и будет вам ноль передаваться. тогда их нужно назвать одинаково, а в обработчике возникнет конфликт по именам. значит нужно добавить js-код, чтобы записать в скрытый инпут значение. но зачем? все нужно сделать в обработчике формы. вот из моей смс (да, частично используется библиотека от джумлы) protected static function UpdateCat($post){ if(!$post['id']) return self::NewCat($post); $arr=array('title','description','alias','metadesc','metakey','shortdesc','parent'); $db = JFactory::getDBo(); $query = "UPDATE #__freelance_cat SET "; foreach($arr as $a){ if(!empty($post['section'.$a])){ if($a=='parent'){ $q['parent'] ="parent=".$post['sectionparent']; } else $q[] =$a."='".$post['section'.$a]."'"; } } $query .=implode(',',$q); $query .=" WHERE cat_id=".$post['id']; $db->setQuery( $query ); if (!$result = $db->query()) { return array('error',JText::_('JLIB_UPDATE_DB_PROBLEMS')) ; } return array('success',JText::_('JLIB_UPDATE_DB_OK')); } и в запросе будет UPDATE #__freelance_cat SET и все поля присутствующие. я не даю готового решения, так как не вижу сам код. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 1 час назад, esculapra сказал: В 25.11.2021 в 12:22, nikifalex сказал: поставить input type hidden value 0 перед input type checkbox и будет вам ноль передаваться. тогда их нужно назвать одинаково, а в обработчике возникнет конфликт по именам. значит нужно добавить js-код, чтобы записать в скрытый инпут значение Это стандартная общепринятая практика во многих фреймворках - вот так создавать чекбоксы - сразу со скрытым инпутом с name тем же, что и у чекбокса и value = 0. В частности, Yii так делает. Никаких конфликтов не возникает. 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 Лучше это сделать через radio пример Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... rabohag Опубліковано: 6 грудня 2021 Share Опубліковано: 6 грудня 2021 (змінено) В 25.11.2021 в 12:15, esculapra сказал: Смотри, можно в модель прописать отсутствие параметра. Вот пример public function editSetting($key, $value, $path, $store_id=0) { if(!is_array($value)) { $this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'"); } else { $custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs')); foreach($custom_tabs as $_key=>$_val) { $params[]=array($_key=>$_val); } $params[]=array($value[0]=>$path); $this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'"); } } Может не совсем удобно для понимания... Поясню. Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Самые свежие новости и события из мира криптовалют и блокчейна https://v-tagile.ru/obschestvo-noyabr-2021/budushchee-kriptovalyut-i-blokchejna. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию. Спасибо огромное за наводку, вроде бы получилось Змінено 6 грудня 2021 користувачем rabohag Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Не передается checkbox value при сохранении Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000
esculapra Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 В 25.11.2021 в 11:22, nikifalex сказал: поставить input type hidden value 0 перед input type checkbox и будет вам ноль передаваться. тогда их нужно назвать одинаково, а в обработчике возникнет конфликт по именам. значит нужно добавить js-код, чтобы записать в скрытый инпут значение. но зачем? все нужно сделать в обработчике формы. вот из моей смс (да, частично используется библиотека от джумлы) protected static function UpdateCat($post){ if(!$post['id']) return self::NewCat($post); $arr=array('title','description','alias','metadesc','metakey','shortdesc','parent'); $db = JFactory::getDBo(); $query = "UPDATE #__freelance_cat SET "; foreach($arr as $a){ if(!empty($post['section'.$a])){ if($a=='parent'){ $q['parent'] ="parent=".$post['sectionparent']; } else $q[] =$a."='".$post['section'.$a]."'"; } } $query .=implode(',',$q); $query .=" WHERE cat_id=".$post['id']; $db->setQuery( $query ); if (!$result = $db->query()) { return array('error',JText::_('JLIB_UPDATE_DB_PROBLEMS')) ; } return array('success',JText::_('JLIB_UPDATE_DB_OK')); } и в запросе будет UPDATE #__freelance_cat SET и все поля присутствующие. я не даю готового решения, так как не вижу сам код. Надіслати Поділитися на інших сайтах More sharing options... Prooksius Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 1 час назад, esculapra сказал: В 25.11.2021 в 12:22, nikifalex сказал: поставить input type hidden value 0 перед input type checkbox и будет вам ноль передаваться. тогда их нужно назвать одинаково, а в обработчике возникнет конфликт по именам. значит нужно добавить js-код, чтобы записать в скрытый инпут значение Это стандартная общепринятая практика во многих фреймворках - вот так создавать чекбоксы - сразу со скрытым инпутом с name тем же, что и у чекбокса и value = 0. В частности, Yii так делает. Никаких конфликтов не возникает. 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 Лучше это сделать через radio пример Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... rabohag Опубліковано: 6 грудня 2021 Share Опубліковано: 6 грудня 2021 (змінено) В 25.11.2021 в 12:15, esculapra сказал: Смотри, можно в модель прописать отсутствие параметра. Вот пример public function editSetting($key, $value, $path, $store_id=0) { if(!is_array($value)) { $this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'"); } else { $custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs')); foreach($custom_tabs as $_key=>$_val) { $params[]=array($_key=>$_val); } $params[]=array($value[0]=>$path); $this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'"); } } Может не совсем удобно для понимания... Поясню. Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Самые свежие новости и события из мира криптовалют и блокчейна https://v-tagile.ru/obschestvo-noyabr-2021/budushchee-kriptovalyut-i-blokchejna. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию. Спасибо огромное за наводку, вроде бы получилось Змінено 6 грудня 2021 користувачем rabohag Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Загальні питання Не передается checkbox value при сохранении
Prooksius Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 1 час назад, esculapra сказал: В 25.11.2021 в 12:22, nikifalex сказал: поставить input type hidden value 0 перед input type checkbox и будет вам ноль передаваться. тогда их нужно назвать одинаково, а в обработчике возникнет конфликт по именам. значит нужно добавить js-код, чтобы записать в скрытый инпут значение Это стандартная общепринятая практика во многих фреймворках - вот так создавать чекбоксы - сразу со скрытым инпутом с name тем же, что и у чекбокса и value = 0. В частности, Yii так делает. Никаких конфликтов не возникает. 1 Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 Лучше это сделать через radio пример Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... rabohag Опубліковано: 6 грудня 2021 Share Опубліковано: 6 грудня 2021 (змінено) В 25.11.2021 в 12:15, esculapra сказал: Смотри, можно в модель прописать отсутствие параметра. Вот пример public function editSetting($key, $value, $path, $store_id=0) { if(!is_array($value)) { $this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'"); } else { $custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs')); foreach($custom_tabs as $_key=>$_val) { $params[]=array($_key=>$_val); } $params[]=array($value[0]=>$path); $this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'"); } } Может не совсем удобно для понимания... Поясню. Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Самые свежие новости и события из мира криптовалют и блокчейна https://v-tagile.ru/obschestvo-noyabr-2021/budushchee-kriptovalyut-i-blokchejna. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию. Спасибо огромное за наводку, вроде бы получилось Змінено 6 грудня 2021 користувачем rabohag Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
chukcha Опубліковано: 27 листопада 2021 Share Опубліковано: 27 листопада 2021 Лучше это сделать через radio пример Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... rabohag Опубліковано: 6 грудня 2021 Share Опубліковано: 6 грудня 2021 (змінено) В 25.11.2021 в 12:15, esculapra сказал: Смотри, можно в модель прописать отсутствие параметра. Вот пример public function editSetting($key, $value, $path, $store_id=0) { if(!is_array($value)) { $this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'"); } else { $custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs')); foreach($custom_tabs as $_key=>$_val) { $params[]=array($_key=>$_val); } $params[]=array($value[0]=>$path); $this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'"); } } Может не совсем удобно для понимания... Поясню. Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Самые свежие новости и события из мира криптовалют и блокчейна https://v-tagile.ru/obschestvo-noyabr-2021/budushchee-kriptovalyut-i-blokchejna. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию. Спасибо огромное за наводку, вроде бы получилось Змінено 6 грудня 2021 користувачем rabohag Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 1
rabohag Опубліковано: 6 грудня 2021 Share Опубліковано: 6 грудня 2021 (змінено) В 25.11.2021 в 12:15, esculapra сказал: Смотри, можно в модель прописать отсутствие параметра. Вот пример public function editSetting($key, $value, $path, $store_id=0) { if(!is_array($value)) { $this->db->query("INSERT INTO `".DB_PREFIX."setting` SET `store_id`='".(int)$store_id."', `code`='supertools_seo', `key`='".$this->db->escape($key)."', `value`='".$this->db->escape(json_encode(array($value=>$path), true))."', serialized='0'"); } else { $custom_tabs=json_decode($this->getParam('supertools_seo_custom_tabs')); foreach($custom_tabs as $_key=>$_val) { $params[]=array($_key=>$_val); } $params[]=array($value[0]=>$path); $this->db->query("UPDATE `".DB_PREFIX."setting` SET `value`='".$this->db->escape(json_encode($params))."' WHERE `key`='".$this->db->escape($key)."' AND store_id='".(int)$store_id."'"); } } Может не совсем удобно для понимания... Поясню. Ты передаешь в функцию форму, а она (функция) должна сделать разбор формы, то есть в запрос к БД включить только те поля, которые имеются. Самые свежие новости и события из мира криптовалют и блокчейна https://v-tagile.ru/obschestvo-noyabr-2021/budushchee-kriptovalyut-i-blokchejna. Но если в таблице предустановленно NOT NULL, тогда необходимо создать условие, что если параметр отсутствует, добавлять значение по-умолчанию. Или в таблице указать значение по-умолчанию. Спасибо огромное за наводку, вроде бы получилось Змінено 6 грудня 2021 користувачем rabohag Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts