Checkbox без кнопки, как правильно сделать?

Всем добрый день , суть вопроса такова . Есть Страница с выводом статей , напротив каждой статьи свой чекбокс , при нажатии на кнопки включить или отключить , в таблице меняется значение статуса на 1 или 0.
Теперь сам вопрос , как реализовать такой функционал без кнопок , с помощью ajax . Дабы было так ,если значение статуса в бд 1 , галочка стоит , если 0 , соответственно нет. так же при нажатии на галочку значение в базе менялось на тру или наоборот . то бишь сделать весь тот же функционал без кнопок . в js вообще нуль к сожалению. буду признателен за помощь . Ниже нынешний код

<?php foreach ($posts as $post) { ?>
<tr>
 <td style="text-align: center;">
<input type="checkbox" name="selected[]" value="<?= $post['post_id']; ?>"/> 
</td>
</tr>
......



<div class="buttons">
                        <a class="button">
                            <button id="but" formaction="<?=$turnon;?>">Включить</button>
                        </a>
                        <a class="button">
                            <button id="but" formaction="<?=$turnoff;?>">Отключить</button>
                        </a>
 </div>


public function turnoff()
    {
        $this->load->model('instagram/instagram');
        if (isset($this->request->post['selected'])) {
            foreach ($this->request->post['selected'] as $post_id) {
                $this->model_instagram_instagram->turnoff($post_id);
            }

            $this->session->data['success'] = "Пост выключен!";

        }
        $this->redirect($this->url->link('instagram/instagram', 'token=' . $this->session->data['token'], 'SSL'));

    }

    public function turnon()
    {
        $this->load->model('instagram/instagram');
        if (isset($this->request->post['selected'])) {
            foreach ($this->request->post['selected'] as $post_id) {
                $this->model_instagram_instagram->turnon($post_id);
            }

            $this->session->data['success'] ="Пост включен!";
        }
        $this->redirect($this->url->link('instagram/instagram', 'token=' . $this->session->data['token'], 'SSL'));
    }

public function turnoff($post_id)
    {
        $this->db->query("UPDATE " . DB_PREFIX . "instpost SET status = '0' WHERE  post_id= '"
            . $post_id . "'");
    }

    public function turnon($post_id)
    {
        $this->db->query("UPDATE " . DB_PREFIX . "instpost SET status = '1' WHERE  post_id= '"
            . $post_id . "'");
    }
  • Вопрос задан
  • 674 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Belka2007
Пару роликов посмотрите и станет все ясно.
https://www.youtube.com/results?search_query=jquer...

Если кратко:
1. Добавить одну кнопку с id (не обязательно checkbox)
2. Привязать событие на клик по кнопке через jquery
3. При выполнении события отправлять ajax запрос на страницу php
4. В php сделать один обработчик, который проверяет в БД значение текущее у записи и меняет его на противоположное(Если 1 то на 0, если 0 то на 1).
5. В jquery при получении success ответа от ajax запроса, меняем текст(и/или css класс) в кнопке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы