Jump to content
Sign in to follow this  
Verwolf

Проверка состояния элементов формы (checkbox, radio и т.д.)

Recommended Posts

Доброго времени суток, уважаемые форумчане!

 

Работаю над реализацией следующей задачи:

 

В админке в настройках модуля выбираются опции товаров, при нажатии на "Сохранить" отмеченные опции (реализовано в виде checkbox) фиксируются в БД. В каталоге, соответсвенно, отмеченные опции отображаются.

 

Практически всё реализовано за исключением одной мелочи: в БД отмечаются не только выбранные checkbox, а все...

 

Реализация в коде:

<a onclick="setView(); $('#form').submit();" class="button"><?php echo $button_save; ?></a>
public function setViewTest($option_id, $value)
{
$this->db->query("UPDATE ". DB_PREFIX ."product_option_view SET view = "
.(int)$value." WHERE option_id = ".(int)$option_id);
}
<script type="text/javascript">
function setView()
{
if($("#<?php echo $option['option_id']?>").prop('checked'))
{
<?php $this->model_module_module_test->setViewTest($option['option_id'], 1); ?>
}
else
{
<?php $this->model_module_module_test->setViewTest($option['option_id'], 0); ?>
}
}
</script>

По логу SQL-запросов действительно делается update всех записей таблицы. Даже просто при загрузке страницы. Хотя на самом деле нужно, чтобы JS функция вызывалась только при клике на ссылку. Почему это происходит - для меня загадка.

 

Буду очень признателен, если кто-то укажет на мои ошибки либо предложит другие пути решения данной задачи.

Share this post


Link to post
Share on other sites

сотри все, почитай про serialize и напиши заново.

Share this post


Link to post
Share on other sites

сотри все, почитай про serialize и напиши заново.

 

Спасибо, конечно, за ответ... но как serialize решит мою проблему, что у меня js-код выполняется при загрузке страницы, а не при вызове его??? Или, возможно, я не совсем разобрался с serialize... В инете нарыл, что эта php-функция позволяет представить переменную или массив в виде, удобном для хранения в БД или текстовом файле... так с этим, вроде, проблем нет...

Share this post


Link to post
Share on other sites

jquery - :checked

 

пример давать не буду, здесь работа должна быть проделана самостоятельно

Share this post


Link to post
Share on other sites

jquery - :checked

 

пример давать не буду, здесь работа должна быть проделана самостоятельно

эммм.... я как бы его и использовал...

$("#<?php echo $option['option_id']?>").prop('checked')

Share this post


Link to post
Share on other sites

В общем, всем спасибо. Решил проблему с помощью $this->request->post

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By kotus2002
      Всем привет!
      Знатоки JS, нужна помощь...
      Есть 2 скрипта: один фиксирует всякие элементы, второй скролит страницу к якорям.
      1. Фиксация. Как правильно добавить условие срабатывания скрипта при разрешении экрана менее 1200?
       
      <script type="text/javascript">
      $(function(){
      $(window).scroll(function() {
      var top = $(document).scrollTop();
      if (top < 300) $(".mcdmobile-menu").css({top: '0', position: 'relative'});
      else $(".mcdmobile-menu").css({top: '0', width: '100%', left: '0', position: 'fixed'});
      });
      });
      </script>
       
      2. Скролл. Как правильно задать значение отступа от верхней границы, чтобы "якорный" контент не перекрывался другими зафиксированными элементами, а оказался ниже? То есть, отступ от top.
       
      <script type="text/javascript" >
          $('.anchor').click(function(){
              var target = $(this).attr('href');
              $('html, body').stop().animate({
                  scrollTop: $(anchor.attr('href')).offset().top
              }, 777);
              e.preventDefault();
              return false;
          });
      });
      </script >
       
      Буду очень благодарен за помощь знатоков!
    • By drastee
      Модификатор меняет стандартные опции типа: флажок (checkbox), переключатель (radio) на Bootstrap кнопки.
      Тестил на OcStore 3.0.2.0 и Opencart 3.0.3.2 cо стандартным шаблоном.
       
      Делал для себя, может кому-то пригодится. Буду рад любому фидбеку.
       

    • By drastee
      Опции Кнопками
      Скачать/Купить дополнение Модификатор меняет стандартные опции типа: флажок (checkbox), переключатель (radio) на Bootstrap кнопки.
      Тестил на OcStore 3.0.2.0 и Opencart 3.0.3.2 cо стандартным шаблоном.
       
      Делал для себя, может кому-то пригодится. Буду рад любому фидбеку.
       

      Добавил drastee Добавлено 26.07.2019 Категория Опции Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет  
    • By fofa
      Через OCMOD можно менять javascript - файлы?
    • By santehtop
      Всем привет! Нужна помощь специалиста! Столкнулся с такой проблемой. В карточке товара установлен модуль рекомендуемые товары, но вот беда, на мольных устройствах он не корректно отображается... в частности заметил такую проблему на гугл хроме, яндекс браузере. На мозиле проблем нет
      Ссылка на товар https://santeh-nova.com/2292-newarc-smesiteli-941881

      Вот сама проблема... сжимает


      Подскажите, кто возможно сталкивался с данной проблемой? какие есть возможные варианты решений ? 
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.