Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 377

Не отправляется форма с чекбоксами

05.11.2021, 22:34. Показов 2302. Ответов 25
Метки msql, php (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такой код, с помощью которого хочу при удалении заказа, выбрать причину удаления.
Сначала хочу сменить статус заказа на 5ть. 5 = Удалён.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
        
 <button type="button" class="bg-danger button-fruit" data-toggle="modal" data-target="#exampleModal<?php echo $item->order_id;?>">Удалить заказ</button>
 
<div class="modal fade" id="exampleModal<?php echo $item->order_id;?>" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered">
                <div class="modal-content modal-content-order">
                <div class="modal-header">
                    <h3>Укажите причину для удаления заказа <?php echo $item->order_id; ?>:</h3>
                </div>
                    <form method="POST" action="">
                        <div class="modal-body modal-body-order">
                            <label class="radio form-check form-check-inline">
                                <input type="radio" value="option1" name="order_del1"> Возврат билетов
                            </label>
                            <label class="radio form-check form-check-inline">
                                <input type="radio" value="option2" name="order_del2"> Обмен мест
                            </label>
                            <label class="radio form-check form-check-inline">
                                <input type="radio" value="option3" name="order_del3"> Тестовый заказ
                            </label>
                            <label class="radio form-check form-check-inline">
                                <input type="radio" value="option4" name="order_del4"> Другая причина
                            </label>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-primary">Удалить заказ</button>
                            <button type="button" class="btn btn-secondary" data-dismiss="modal">Закрыть окно</button>
                        </div>
                    </form>
                    
                    <?php 
                        if(!$item->order_id) echo 'Ошибка: Заказ не найден!';
 
                        if (isset($_POST["order_del"])) {
 
                            //Вставляем данные, подставляя их в запрос
                            $order_del = $wpdb->update ("UPDATE wp_12ae_evpl_orders SET order_status='5' WHERE order_id=".$item->order_id.""); 
 
                            //Если вставка прошла успешно
                            if ($order_del) {
                                echo '<p style="color: green;">Заказ успешно удалён</p>';
                            } else {
                                echo '<p style="color: red;>Произошла ошибка.</p>';
                            }
                        }
                    ?>
                </div>
            </div>
        </div>
Проблема в том, что при нажатии "Удалить заказ", ничего не происходит, ошибок тоже нет. Всё это делается в сплывающем окне.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2021, 22:34
Ответы с готовыми решениями:

Почему не отправляется POST с чекбоксами?
Добрый день, уважаемые форумчане. Возникла такая проблема: требуется удалять строки таблицы из бд (или копировать в другую таблицу)...

Всплывающие форма с чекбоксами
Есть VBA-скрипт, вычисляющий 30 различных значений. Подскажите, как сделать всплывающую форму с чекбоксами, чтобы пользователь мог...

форма в режиме таблицы с чекбоксами возле каждой записи
Привет всем. все продолжаю кодировать в vba. Есть форма &quot;Поиск рейса&quot;. при нажатии на кнопку &quot;Найти&quot;, открывается другая...

25
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 377
10.11.2021, 12:59  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Para bellum Посмотреть сообщение
Как таблица выглядит? Снимок экрана покажите.
Совсем не то написал. В таблице wp_12ae_evpl_orders_places, в столбце event_places хранятся данные по выкупленным местам на кассе, и при удалении заказа, нужно удалить данные этих мест, чтобы они вернулись снова в продажу, но нужно сохранить данные стоимости этих мест, скриншоты прикрепил, на нём видно что в заказе выкуплено два места по 1000 рублей.
Эти данные нужно сохранить для статистики, например если будут возвраты билетов, то в статистике будет отображаться: Возвращен 1 заказа, общая сумма возвратов 2000 рублей.
Изначально и начал менять принцип удаления заказа с указанием причины удаления для статистики.
Миниатюры
Не отправляется форма с чекбоксами  
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
10.11.2021, 15:42
Fruit, конкретно во внутренностях Wordpress я не специалист. Возможно, это решается стандартными функциями Wordpress.
Как вы пишете значение в это поле? Как потом извлекаете?
1
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 377
14.11.2021, 20:49  [ТС]
Para bellum, нашёл $orders_sum, выводит сумму билетов. Но не пойму, как теперь через форму передать эту сумму в функцию.
Сама функция получилось такая:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function evpl_order_delete($order_id, $reason = null){
    global $wpdb;
    
    do_action('evpl_before_order_delete', $order_id);
 
    $wpdb->update(WP_PREFIX . 'evpl_orders', [
        'order_status' => 5,
        'order_reason' => $reason
    ], compact('order_id')); 
 
    $wpdb->update(WP_PREFIX . 'evpl_orders_places', [
        'event_places'  => $orders_sum
    ], compact('order_id'));
    
    do_action('evpl_order_delete', $order_id);
}
0
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 377
17.11.2021, 17:40  [ТС]
Para bellum, Столкнулся с такой проблемой, что при отправке формы определённого заказа, так же редактируется и последний заказ в таблице.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
17.11.2021, 19:11
Тут сложно предполагать. Нужно делать поэтапную отладку. Смотреть, какой SQL-запрос формируется. Смотреть, что из формы приходит. Один ли раз вызывается функция редактирования и т.д.
0
10 / 9 / 5
Регистрация: 17.02.2016
Сообщений: 377
17.11.2021, 22:38  [ТС]
Цитата Сообщение от Para bellum Посмотреть сообщение
Смотреть, что из формы приходит.
Как это посмотреть?
А по поводу суммы возврата, сделал вот так, на основе того, что Вы сделали выше:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
        function column_order_actio($item){
 
            $status_name = evpl_get_status_name($item->order_status);
         
            echo '<button type="button" class="bg-danger button-fruit" data-toggle="modal" data-target="#exampleModal'. $item->order_id .'">Удалить заказ</button>'; ?>
         
            <div class="modal fade" id="exampleModal<?php echo $item->order_id; ?>" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
                <div class="modal-dialog modal-dialog-centered">
                    <div class="modal-content modal-content-order">
                    <div class="modal-header">
                        <h3>Укажите причину для удаления заказа <?php echo $item->order_id; ?>:</h3>
                    </div>
                        <form method="POST" action="?page=evpl-orders">
                            <input type="hidden" name="orders" value="<?=$item->order_id?>">
                            <input type="hidden" name="action" value="delete">
                            <div class="modal-body modal-body-order">
                                <label class="radio form-check form-check-inline">
                                    <input type="radio" value="Возврат билетов" name="reason"> Возврат билетов
                                </label>
                                <label class="radio form-check form-check-inline">
                                    <input type="text" value="Сумма возврата" name="reasontx">
                                </label>
                                <label class="radio form-check form-check-inline">
                                    <input type="radio" value="Обмен мест" name="reason"> Обмен мест
                                </label>
                                <label class="radio form-check form-check-inline">
                                    <input type="radio" value="Тестовый заказ" name="reason"> Тестовый заказ
                                </label>
                                <label class="radio form-check form-check-inline">
                                    <input type="radio" value="Другая причина" name="reason"> Другая причина
                                </label>
                            </div>
                            <div class="modal-footer">
                                <button type="submit" class="btn btn-primary">Удалить заказ</button>
                                <button type="button" class="btn btn-secondary" data-dismiss="modal">Закрыть окно</button>
                            </div>
                        </form>
                    </div>
                </div>
            </div>  <?php
         
        }
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    function init_actions(){
        $page = isset($_GET['page']) ? $_GET['page'] : false;
        if( 'evpl-orders' != $page ) return;
     
        $action = filter_input(INPUT_POST, 'action');
     
        if('delete' === $action){
            $input = filter_input_array(INPUT_POST, [
                'orders'        => FILTER_VALIDATE_INT,
                'reason'        => [
                    'filter'    => FILTER_DEFAULT,
                    'flags'     => FILTER_NULL_ON_FAILURE
                ],
                'reason_sum'      => [
                    'filter'    => FILTER_DEFAULT,
                    'flags'     => FILTER_NULL_ON_FAILURE
                ]
            ]);
     
            foreach(array_filter((array) $input['orders']) as $order_id){
                evpl_order_delete($order_id, $input['reason'], $input['reason_sum']);
            }
        }
        
        if(isset($_GET['action'])){
            $order_id = $_GET['order_id'];
            $order_status = $_GET['order_status'];
            switch($_GET['action']){
                case 'status-switch':
                    evpl_update_order_status($order_id,$order_status); break;
            }
        }
    }
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function evpl_order_delete($order_id, $reason = null, $reason_sum = null){
    global $wpdb;
    
    do_action('evpl_before_order_delete', $order_id);
 
    $wpdb->update(WP_PREFIX . 'evpl_orders', [
        'order_status' => 5,
        'order_reason' => $reason
    ], compact('order_id')); 
 
    $wpdb->update(WP_PREFIX . 'evpl_orders_places', [
        'event_places'  => $reason_sum
    ], compact('order_id'));
    
    do_action('evpl_order_delete', $order_id);
}
И сейчас попробовал удалить пару заказов (не первых в таблице), и всё прошло ровно, первые заказа небыли затронуты.
Миниатюры
Не отправляется форма с чекбоксами  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.11.2021, 22:38

Форма не отправляется!
&lt;form action=&quot;formdata.php&quot; method=&quot;POST&quot; name=&quot;form1&quot;&gt; &lt;legend&gt;Пожалуйста, заполните форму:&lt;/legend&gt; &lt;div...

НЕ отправляется форма
Не отправляется форма Правила форума пункт 5.18 Запрещено размещать задания в виде картинок и других файлов с их текстом. ...

Не отправляется форма (
код самой формы: &lt;form action=&quot;&quot; method=&quot;POST&quot;&gt; &lt;div class=&quot;inputs&quot;&gt; &lt;label&gt; &lt;span&gt;Фамилия:&lt;/span&gt; ...

Не отправляется форма
Добрый день, Есть форма для отправки рекомендации знакомым. При нажатии на кнопку Отправить не происходит никаких действий. Что-то не...

Не отправляется форма
в файле index.php есть форма в модальном окне: &lt;div class=&quot;modal fade&quot; id=&quot;contact&quot;&gt; &lt;div class=&quot;modal-dialog&quot;&gt; &lt;div...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru