Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
nameIvan
0 / 0 / 0
Регистрация: 01.08.2014
Сообщений: 18
1

Не срабатывает скрипт и не выводится ошибка

18.09.2018, 14:57. Просмотров 147. Ответов 18
Метки нет (Все метки)

Из базы выводится инфа в табличном виде
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
while ($row=mysqli_fetch_array($result))
        {    
             echo '<form name="form" action="" method="post">
                   <tr align="center">
                     <td>'.$row['id'].'</td>
                     <td>'.$row['nom_in_filial'].'</td>
                     <td>'.$row['tid'].'</td>
                     <td>'.$row['address'].'</td>
                     <td>'.$row['serial'].'</td>
                     <td>'.$row['inv'].'</td>
                     <td><a href="#" title="Изменить"><img src="assets/img/edit.png"></a>
                         <a href="#" onclick="return del()"><img src="assets/img/del.png"></a>
                        </td>
                  </tr>
                  </form>
                  ';
       }
Напротив каждой записи кнопки Редактировать/Удалить. Необходимо при удалении (у меня заносится в архив) выдать пользователю предупреждение, чтобы подтвердил операцию.

JS в этом же файле
Javascript
1
2
3
4
5
6
7
8
9
<script>
function del()//устройство в архив
{
if(confirm('Эта операция переместит выбранное устройство в архив безвозвратно. Вы уверены?'))
{
window.location.href = "archive_add.php"
}
}
</script>
Далее после подтверждения должен отрабатывать скрипт переноса из одно таблицы в другую
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
require_once 'connect.php';
if (isset($_POST0['id'])) {
    $result = mysqli_query($link,"INSERT INTO `archive` (nom_in_filial, tid, address, serial, inv)
                        VALUES ('".$_POST['nom_in_filial']."','".$_POST['tid']."','".$_POST['address']."','".$_POST['serial']."','".$_POST['inv']."')");
    //Если вставка прошла успешно
    if ($result) {
        echo "<p style=font-size: 20px>Данные успешно добавлены в БД</p>";
    } else {
        echo "<p style=font-size: 20px>Ошибка записи в БД</p>";
    }    
}
?>
Но белая страница. Никаких ошибок и не помогает
error_reporting(E_ALL);
ini_set('display_errors', 1);

Помогите, пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2018, 14:57
Ответы с готовыми решениями:

Не срабатывает скрипт PHP
Здравствуйте, не могли бы помочь вот с таким вопросом. Учу php, столкнулся с такой ситуацией, в...

Не срабатывает скрипт при нажатии "Отправить"
Приветствую! Помогите пожлауйста разобраться! Есть сайт, на нём форма контактов. Вот код: &lt;html&gt;...

Не срабатывает html код (не выводится форма)
Добрый вечер, подскажите где ошибка? Не выводит форму. &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML...

Не срабатывает скрипт
Доброго времени суток! Народ что тут не так? Не вносит в базу,но и ошибок никаких не дает &lt;?php...

Не полностью срабатывает скрипт комментов
Ребята, подскажите почему у меня после обработки скрипта добавления комментов не возвращается на...

18
Academik
660 / 439 / 172
Регистрация: 04.04.2013
Сообщений: 1,917
18.09.2018, 15:04 2
nameIvan, Наверно должно быть $_POST['id']
PHP
1
if (isset($_POST0['id'])) {
0
nameIvan
0 / 0 / 0
Регистрация: 01.08.2014
Сообщений: 18
18.09.2018, 15:09  [ТС] 3
Это тут с опечаткой. В файле прописано нормально. Не работает
0
Academik
660 / 439 / 172
Регистрация: 04.04.2013
Сообщений: 1,917
18.09.2018, 15:13 4
nameIvan, а где вы ID отправляете обработчику?
0
nameIvan
0 / 0 / 0
Регистрация: 01.08.2014
Сообщений: 18
18.09.2018, 15:15  [ТС] 5
Эээээ
ссылка-кнопка <a href="#" onclick="return del()"><img src="assets/img/del.png"></a>
И проверка в js
Блин. Мне js вообще непонятен.

Как в ссылку c подтверждением js вписать id?
0
Phantom-84
269 / 224 / 62
Регистрация: 15.09.2017
Сообщений: 1,065
18.09.2018, 15:19 6
Цитата Сообщение от nameIvan Посмотреть сообщение
Далее после подтверждения должен отрабатывать скрипт переноса из одно таблицы в другую
Он и отрабатывает.

Цитата Сообщение от nameIvan Посмотреть сообщение
Но белая страница. Никаких ошибок
Да, белая страница, точнее "пустая". Никаких ошибок нет.

Добавлено через 1 минуту
Цитата Сообщение от nameIvan Посмотреть сообщение
Блин. Мне js вообще непонятен.
Не нужно писать, что вам непонятно.
0
nameIvan
0 / 0 / 0
Регистрация: 01.08.2014
Сообщений: 18
18.09.2018, 15:19  [ТС] 7
Phantom-84, не отрабатывает. В таблицу ничего не заносится
Ну вот Академик спрашивает как я передаю id обработчику? Видимо беда в этом. Если без js, то <a href=archive_add.php?id='.$row['id'].'
А если через js?
0
Phantom-84
269 / 224 / 62
Регистрация: 15.09.2017
Сообщений: 1,065
18.09.2018, 15:22 8
Цитата Сообщение от nameIvan Посмотреть сообщение
Как в ссылку c подтверждением js вписать id?
Уберите JS-код. В таком виде он абсолютно бесполезен.

Добавлено через 1 минуту
Цитата Сообщение от nameIvan Посмотреть сообщение
не отрабатывает. В таблицу ничего не заносится
Отрабатывает. Занесению в таблицу препятствует ложное условие в ветвлении.
0
nameIvan
0 / 0 / 0
Регистрация: 01.08.2014
Сообщений: 18
18.09.2018, 15:23  [ТС] 9
Phantom-84, не пойму. Можете носом ткнуть что не так? Как прописать?
0
Phantom-84
269 / 224 / 62
Регистрация: 15.09.2017
Сообщений: 1,065
18.09.2018, 15:31 10
Удаление нужно делать в ответ на POST-запрос. Уберите JS-код.
0
nameIvan
0 / 0 / 0
Регистрация: 01.08.2014
Сообщений: 18
18.09.2018, 15:34  [ТС] 11
Убрал js. Теперь ссылка на удаление имеет вид http://localhost/pos3/archive_add.php?id=2
Но не получается в базу запихнуть. Также белая страница
0
Phantom-84
269 / 224 / 62
Регистрация: 15.09.2017
Сообщений: 1,065
18.09.2018, 15:53 12
Переход по ссылке выполняется методом GET. Вам нужно использовать либо индивидуальные формы для каждого элемента со скрытым полем id, либо атрибут formaction со значением id в адресе обработчика, либо классический вариант с чекбоксами и общей кнопкой удаления.

Добавлено через 3 минуты
А если JS, то только AJAX с изъятием соответствующего блока со страницы в случае успешного удаления.

Добавлено через 1 минуту
Цитата Сообщение от Phantom-84 Посмотреть сообщение
классический вариант с чекбоксами и общей кнопкой удаления
В этом случае нужно предусмотреть возможность множественного удаления либо заменить чекбоксы "радиокнопками".
0
nameIvan
0 / 0 / 0
Регистрация: 01.08.2014
Сообщений: 18
18.09.2018, 15:54  [ТС] 13
Phantom-84, чекбоксы не вариант. Множественное удаление не нужно. Только единичное.
Но я окончательно запутался.
Я убрал js, но не понимаю почему не работает запрос
0
Phantom-84
269 / 224 / 62
Регистрация: 15.09.2017
Сообщений: 1,065
18.09.2018, 15:59 14
Цитата Сообщение от nameIvan Посмотреть сообщение
Но не получается в базу запихнуть.
Что "запихнуть"? Берите данные напрямую из исходной таблицы по id. Не нужно их "гонять туда-сюда" между сервером и клиентом.

Добавлено через 1 минуту
Цитата Сообщение от nameIvan Посмотреть сообщение
Я убрал js, но не понимаю почему не работает запрос
Внимательно прочитайте, что я вам написал. Может, поймете.
0
nameIvan
0 / 0 / 0
Регистрация: 01.08.2014
Сообщений: 18
18.09.2018, 16:06  [ТС] 15
Что "запихнуть"? Берите данные напрямую из исходной таблицы по id. Не нужно их "гонять туда-сюда" между сервером и клиентом.
Ну по сути это тот же запрос?

<?php
require_once 'connect.php';
if (isset($_POST['id'])) {
$result = mysqli_query($link,"INSERT INTO `archive` (nom_in_filial, tid, address, serial, inv)
VALUES ('".$_POST['nom_in_filial']."','".$_POST['tid']."','".$_POST['address']."','".$_POST['serial']."','".$_POST['inv']."')");

Не понимаю
0
Phantom-84
269 / 224 / 62
Регистрация: 15.09.2017
Сообщений: 1,065
18.09.2018, 16:33 16
Изначально вы берете данные из базы данных, а потом пытаетесь получить их от клиента. Причем ничего не делаете для того, чтобы их передать обратно от клиента на сервер. Правильный алгоритм такой:
1) выводите данные, включая id, а для удаления (переноса) настраиваете передачу от клиента только id удаляемого элемента.
2) на сервере при поступлении id проверяете его корректность (по форме) и переносите соответствующую запись "в архив", после чего в случае успеха удаляете запись из исходной таблицы по тому же id.

Добавлено через 3 минуты
Цитата Сообщение от Phantom-84 Посмотреть сообщение
переносите соответствующую запись "в архив"
Это можно сделать в рамках СУБД одним запросом.

Добавлено через 10 минут
Цитата Сообщение от Phantom-84 Посмотреть сообщение
после чего в случае успеха удаляете запись из исходной таблицы по тому же id
Или помечаете ее "перенесенной в архив" (меняете значение какого-то флага в исходной таблице).
0
nameIvan
0 / 0 / 0
Регистрация: 01.08.2014
Сообщений: 18
18.09.2018, 16:53  [ТС] 17
Вроде начинаю понимать
PHP
1
2
$archive = mysqli_query($link,"insert into `archive` (nom_in_filial, tid, address, serial, inv)
select nom_in_filial, tid, address, serial, inv from `device` where `id` = $id
Но в этот же запрос добавить еще и DELETE from `device` where `id` = $id не получится? Отдельным запросом только?

И как все-таки выдать юзеру запрос на подтверждение операции?
0
Phantom-84
269 / 224 / 62
Регистрация: 15.09.2017
Сообщений: 1,065
18.09.2018, 17:33 18
Цитата Сообщение от nameIvan Посмотреть сообщение
Отдельным запросом только?
Цитата Сообщение от Phantom-84 Посмотреть сообщение
после чего в случае успеха удаляете запись из исходной таблицы по тому же id.



Цитата Сообщение от nameIvan Посмотреть сообщение
И как все-таки выдать юзеру запрос на подтверждение операции?
Я вам описал несколько способов. Если хотите удалять именно по ссылкам (без использования AJAX), делайте отдельные страницы для подтверждения удаления (и на них уже размещайте формы, с ними связывайте обработчик удаления).
1
otto-fukin
-55 / 58 / 21
Регистрация: 15.06.2017
Сообщений: 572
18.09.2018, 18:13 19
nameIvan, весь ваш код - набор букв и не позволяет определить характер ошибок. Попробуйте не писать хрень. Начинайте без ajax-а. Когда освоитесь переходите на следующий уровень
0
18.09.2018, 18:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2018, 18:13

Не срабатывает скрипт с переключением radio кнопок
Всем привет, не срабатывает скрипт на переключение не знаю в чем дело, помогите пожалуйста &lt;form...

Php! JSON_ECODE, Не срабатывает на хостинге след. скрипт:
&lt;?php include(&quot;includer.php&quot;); $sql = &quot;SELECT `foto` FROM `intercoms`&quot;; $query =...

Php скрипт не срабатывает, открывается белая страница
Ребят, помогите пожалуйста. Не работает форма входа на сайт, собственно проблема описана в...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru