Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/47: Рейтинг темы: голосов - 47, средняя оценка - 4.66
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
1

Множественное обновление данных в таблице

14.06.2017, 04:02. Показов 8517. Ответов 106
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите разобраться. Необходимо обновить и сохранить данные с помощью redbeanphp.
есть код:

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            <table border="1" align="center">
                <tr>
                    <td id="table"> ID</td>
                    <td id="table"> Имя</td>
                </tr>
                <?php
                if (!empty($_POST['box']))
                foreach ($func as $item):
                    if (in_array($item['id'], $_POST['box'])) { // проверяем, входит ли строка в выбранный список
                       ?>
                <tr>
                    <td><?= $item['id'] ?></td>
                    <!-- В POST данных будет массив val (id=>значение) -->
                    <td><input type="text" name="val[<?= $item['id'] ?>]" value="<?= $item['login'] ?>"></td>
                </tr>
                <?php
                    }
                    endforeach;
                ?>
 
            </table>
Как сохранить полученные изменения (а их может быть несколько) в БД mysql?
Пытался так...
R::exec( 'UPDATE users SET login="сюда",email="пишем",phone="данные" WHERE id="18"' );
Оно то работает но только с теми данными которые вводятся ручками в запросе, а нужно что бы забирало измененные данные из input и сохраняло в БД.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2017, 04:02
Ответы с готовыми решениями:

Обновление данных в таблице с добавлением новых данных
Уважаемые знатоки, есть проблема с которой сам разобраться не могу, помогите пожалуйста. Вопрос...

Обновление данных в таблице, как правильно реализовать?
Добрый день! Есть таблица, в скриншоте приложил Добавляются данные так: $query =...

Как сделать что если нет данных в таблице, чтобы шаблон этой самой таблице не выводился а писалось что данных в таблице нет
В общем проблема такая, есть админка где выводится список жалоб которые без ответа, когда они есть...

Обновление записи в таблице
Доброго дня. Нужна небольшая помощь. Задача: выбирается 2 случайных числа(не равных), затем...

106
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
23.06.2017, 19:15 61
Author24 — интернет-сервис помощи студентам
Опубликуйте код скриптов, чтобы избежать ошибок
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
23.06.2017, 19:32  [ТС] 62
как то так
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
23.06.2017, 19:43 63
Цитата Сообщение от KillerJo Посмотреть сообщение
Может стоит перенести функции из библиотеки в файл на котором выполняется ajax?
Чтобы избежать ошибок уточните имена файлов
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
23.06.2017, 19:49  [ТС] 64
Цитата Сообщение от plohoyav Посмотреть сообщение
Чтобы избежать ошибок уточните имена файлов
Стартовать admin.room.php в папке libs/libs.php все функции, файлы связаны по названиям, промахнуться сложно. Если bar.php, то его продолжение в edit.bar.php. Если вдруг подключить sql базу то просто импортом.
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
23.06.2017, 20:26 65
В папке libs нет файла libs.php
0
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
23.06.2017, 20:29  [ТС] 66
Хотел сделать правильно. Начитался что все функции (удалить, добавить, прочитать, обновить), хорошо что бы лежали в одном файле, в библиотеке функций. Окей, как должно быть я прочитал, а как сделать не научили. Попробовал и сразу косяки всякие полезли, то одно то другое. Поэтому предвкушая бессонную ночь задам вопрос в перспективе, можно ли так же оптимизировать файл del.users? Не понимаю как его в библиотеку впихнуть, потому он отдельным файлом валяется. Пробовал всячески исходя из понимания как должно быть, но не хочет в библиотеке лежать. А надо будет ещё писать ко всем сопровождающим таблицам "функцию удалить" выйдет некислая такая куча файлов с одной только функцией.


з.ы.
libs.cafe.php - извините за неточность (просто других libs там нет).
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
23.06.2017, 20:40 67
Обработчик формы edit.bar.php можно поместить в файл edit.bar.php
В результате обработчики разных страниц не будут мешать друг другу

edit.bar.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
require_once 'db.php';
// update Bar
function updateBar($title, $price){
    foreach($title as $id => $_){
        $item = R::load('bar', $id);
        $item->title = $title[$id];
        $item->price = $price[$id];
        R::store($item);
    }
}
if(!empty($_POST['title']) && is_array($_POST['title'])){
    updateBar($_POST['title'], $_POST['price']);
    exit;
}
require_once 'libs/libs.cafe.php';
if (empty($_POST['box'])) {
    header("Location: bar.php");
    exit();
}
 
$bar = showAllBar();
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <meta charset="utf-8">
    <title>Edit users</title>
    <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
    <link rel="stylesheet" type="text/css" href="font-awesome-4.7.0/css/font-awesome.css"/> <!-- FontAwesome -->
    <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7/css/bootstrap.css"/> <!-- Bootstrap css -->
    <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7/css/bootstrap-theme.css"/>
    <link rel="stylesheet" type="text/css" href="css/adminka.css"/>
 
    <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="bootstrap-3.3.7/js/bootstrap.js"></script> <!-- Bootstrap js -->
 
</head>
<body>
 
<div id="showmessage" style="display:none">&nbsp;</div>
 
<form action="edit.bar.php" method="POST" id="updBar">
    <div style="width:100%; height: 91vh; overflow:auto;">
        <table border="1" align="center">
            <tr>
                <td id="table"> ID</td>
                <td id="table"> Товар</td>
                <td id="table"> Цена</td>
            </tr>
            <?php
            if (!empty($_POST['box']))
                foreach ($bar as $item):
                    if (in_array($item['id'], $_POST['box'])) { // проверяем, входит ли строка в выбранный список
                        $it = array();
                        $it['id'] = htmlspecialchars($item['id']);
                        $it['title'] = htmlspecialchars($item['title']);
                        $it['price'] = htmlspecialchars($item['price']);
                        ?>
                        <tr>
                            <td><?= $it['id'] ?></td>
                            <td><input type="text" style="width: 100%; border: 1px solid white;"
                                       name="title[<?= $it['id'] ?>]" value="<?= $it['title'] ?>" required></td>
                            <td><input type="text" style="width: 100%; border: 1px solid white;"
                                       name="price[<?= $it['id'] ?>]" value="<?= $it['price'] ?>" required></td>
                        </tr>
                        <?php
                    }
                endforeach;
            ?>
        </table>
    </div>
    <div class="footer" align="center">
        <fieldset id="inputs">
            <a href="bar.php"><button type="submit" id="btnBack">
                    <i class="fa fa-sign-out fa-lg"></i>&nbsp;&nbsp;Назад</button></a>
            <button style="float: right; margin-right: 5px; position: relative;" type="submit" id="btn_act2">
                <i class="fa fa-floppy-o"></i>&nbsp;&nbsp;Сохранить</button>
        </fieldset>
    </div>
</form>
 
<script>
    function vern() {
        document.location.href = 'bar.php';
    }
    $(document).ready(function () {
        $('#updBar').submit(function (e) {
            //отменяем стандартное действие при отправке формы
            e.preventDefault();
            //берем из формы метод передачи данных
            var m_method = $(this).attr('method'); // не нужно заменять слово method
            //получаем адрес скрипта на сервере, куда нужно отправить форму
            var m_action = $(this).attr('action'); // не нужно заменять слово action
            //получаем данные, введенные пользователем в формате input1=value1 и input2=value2...,
            //то есть в стандартном формате передачи данных формы
            var m_data = $(this).serialize();
            $.ajax({
                type: m_method,
                url: m_action,
                data: m_data,
                success: function (result) {
                    $('#showmessage').html(result);
                    setTimeout(vern, 0);
                }
            });
        });
    });
</script>
 
</body>
</html>
Добавлено через 5 минут
Цитата Сообщение от KillerJo Посмотреть сообщение
Хотел сделать правильно.
Скорее всего правила люди придумывают исходя из своих особенностей, навыков, привычек.
Правила одних людей не подходях для других, и наоборот.
К примеру есть люди устойчивые к ядам, а есть не устойчивые, итальянец пьёт вино - ему хоть бы что, северянин пьёт - становится зависимым.
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
23.06.2017, 23:33  [ТС] 68
Ага, спасибо теперь наглядно и понятно чего и куда. А по поводу вопроса выше, посоветуйте как оптимизировать файл del.users. В файле одна функция, а планируется ещё как минимум в 4-5 местах использовать удаление в таблицах. Как стоит поступить?
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
24.06.2017, 00:26 69
Чтобы избежать лишних действий, укажите причину проведения оптимизации.
0
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
24.06.2017, 00:47  [ТС] 70
планируется ещё как минимум в 4-5 местах использовать удаление в таблицах
То есть сейчас есть один файл del.users.php, в нем одна функция для удаления выделенных чекбоксами пользователей. По задумке, будет ещё несколько таблиц и мне кажется писать для каждой таблицы отдельный файл как то неправильно/неграмотно. Наглядно получится свалка файлов в которых будет только одна, маленькая функция с запросом на удаление... del.users.php, del.bar.php, del.childrens.php, del.breakfast.php, del.lunch.php ну и т.д. Как бы оптимизировать код из del.users.php в библиотеку дабы не захламлять файлами проект. Да и думаю что всунуть его уже в сам обработчик или его страницу не выйдет...
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
24.06.2017, 07:21 71
Лучший ответ Сообщение было отмечено KillerJo как решение

Решение

Можно перенести функцию удаления в файл редактирования

users.php

HTML5
1
2
3
4
5
                <button style="left: 10%; position: relative;" formaction="edit.users.php?action=delete" formmethod="POST"
                        type="submit"
                        onclick="delUsers();" id="btn_act" name="del">
                    <i class="fa fa-user-times"></i>&nbsp;&nbsp;Удалить
                </button>
edit.users.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
require_once 'db.php';
require_once 'libs/libs.cafe.php';
if (empty($_POST['box'])) {
    header("Location: users.php");
    exit();
}
if (isset($_GET['action']) AND $_GET['action']=='delete') {
    if (isset($_POST['box']) AND is_array($_POST['box'])) foreach ($_POST['box'] as $id)
    R::trash('users', intval($id)); // redbeanphp удаление
    header("Location: users.php");
    exit;
}
$func = showAllUsers();
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <meta charset="utf-8">
    <title>Edit users</title>
    <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
    <link rel="stylesheet" type="text/css" href="font-awesome-4.7.0/css/font-awesome.css"/> <!-- FontAwesome -->
    <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7/css/bootstrap.css"/> <!-- Bootstrap css -->
    <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7/css/bootstrap-theme.css"/>
    <link rel="stylesheet" type="text/css" href="css/adminka.css"/>
 
    <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="bootstrap-3.3.7/js/bootstrap.js"></script> <!-- Bootstrap js -->
 
</head>
<body>
 
<div id="showmessage" style="display:none">&nbsp;</div>
 
<form action="ajax.php" method="POST" id="updUsers">
    <div style="width:100%; height: 91vh; overflow:auto;">
        <table border="1" align="center">
            <tr>
                <td id="table"> ID</td>
                <td id="table"> Имя</td>
                <td id="table"> email</td>
                <td id="table"> Телефон</td>
            </tr>
            <?php
            if (!empty($_POST['box']))
                foreach ($func as $item):
                    if (in_array($item['id'], $_POST['box'])) { // проверяем, входит ли строка в выбранный список
                        $it = array();
                        $it['id'] = htmlspecialchars($item['id']);
                        $it['login'] = htmlspecialchars($item['login']);
                        $it['email'] = htmlspecialchars($item['email']);
                        $it['phone'] = htmlspecialchars($item['phone']);
                    ?>
                        <tr>
                            <td><?= $it['id'] ?></td>
 
                            <!-- В POST данных будут массивы login (id=>значение), email (id=>значение), phone (id=>значение),   -->
                            <td><input type="text" style="width: 100%; border: 1px solid white;"
                                       name="login[<?= $it['id'] ?>]" value="<?= $it['login'] ?>" required></td>
                            <td><input type="email" style="width: 100%; border: 1px solid white;"
                                       name="email[<?= $it['id'] ?>]" value="<?= $it['email'] ?>" required></td>
                            <td><input type="text" style="width: 100%; border: 1px solid white;"
                                       name="phone[<?= $it['id'] ?>]" value="<?= $it['phone'] ?>" required></td>
                        </tr>
                        <?php
                    }
                endforeach;
            ?>
        </table>
    </div>
    <div class="footer" align="center">
        <fieldset id="inputs">
            <a href="users.php"><button type="submit" id="btnBack">
                    <i class="fa fa-sign-out fa-lg"></i>&nbsp;&nbsp;Назад</button></a>
            <button style="float: right; margin-right: 5px; position: relative;" type="submit" id="btn_act2">
                <i class="fa fa-floppy-o"></i>&nbsp;&nbsp;Сохранить</button>
        </fieldset>
    </div>
</form>
 
<script>
    function vern() {
        document.location.href = 'users.php';
    }
    $(document).ready(function () {
        $('#updUsers').submit(function (e) {
            //отменяем стандартное действие при отправке формы
            e.preventDefault();
            //берем из формы метод передачи данных
            var m_method = $(this).attr('method'); // не нужно заменять слово method
            //получаем адрес скрипта на сервере, куда нужно отправить форму
            var m_action = $(this).attr('action'); // не нужно заменять слово action
            //получаем данные, введенные пользователем в формате input1=value1 и input2=value2...,
            //то есть в стандартном формате передачи данных формы
            var m_data = $(this).serialize();
            $.ajax({
                type: m_method,
                url: m_action,
                data: m_data,
                success: function (result) {
                    $('#showmessage').html(result);
                    setTimeout(vern, 0);
                }
            });
        });
    });
</script>
 
</body>
</html>
 
<?php
/* R::close();  завершить сессию */
?>
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
24.06.2017, 15:16  [ТС] 72
Сейчас попробую...

Добавлено через 18 минут
А если у файла edit.users.php в шапке уже есть запрос на update. И этот же запрос присутствует в шапке у всех файлов к которым необходимо будет прикрутить запрос delete. Исходя из этого... не получится.
"Шапка" edit.users.php
PHP/HTML
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
<?php
require_once 'db.php';
//edit Users
function updateUsers($login, $email, $phone){
    foreach($login as $id => $_){
        $item = R::load('users', $id);
        $item->login = $login[$id];
        $item->email = $email[$id];
        $item->phone = $phone[$id];
        R::store($item);
    }
}
 
if(!empty($_POST['login']) && is_array($_POST['login'])){
    updateUsers($_POST['login'], $_POST['email'], $_POST['phone']);
}
require_once 'libs/libs.cafe.php';
if (empty($_POST['box'])) {
    header("Location: users.php");
    exit();
}
 
$func = showAllUsers();
?>
<!DOCTYPE html>
<html>
<head>
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
24.06.2017, 15:25 73
запрос update не мешает

Добавлено через 34 секунды
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?php
require_once 'db.php';
function updateUsers($login, $email, $phone){
    foreach($login as $id => $_){
        $item = R::load('users', $id);
        $item->login = $login[$id];
        $item->email = $email[$id];
        $item->phone = $phone[$id];
        R::store($item);
    }
    echo 'Обновление завершено';
    exit;
}
if(isset($_POST['login']) && is_array($_POST['login'])){
    updateUsers($_POST['login'], $_POST['email'], $_POST['phone']);
}
require_once 'libs/libs.cafe.php';
if (empty($_POST['box'])) {
    header("Location: users.php");
    exit();
}
if (isset($_GET['action']) AND $_GET['action']=='delete') {
    if (isset($_POST['box']) AND is_array($_POST['box'])) foreach ($_POST['box'] as $id)
    R::trash('users', intval($id)); // redbeanphp удаление
    header("Location: users.php");
    exit;
}
$func = showAllUsers();
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <meta charset="utf-8">
    <title>Edit users</title>
    <link rel="shortcut icon" href="https://www.cyberforum.ru/images/favicon.ico" type="image/x-icon"/>
    <link rel="stylesheet" type="text/css" href="font-awesome-4.7.0/css/font-awesome.css"/> <!-- FontAwesome -->
    <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7/css/bootstrap.css"/> <!-- Bootstrap css -->
    <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7/css/bootstrap-theme.css"/>
    <link rel="stylesheet" type="text/css" href="css/adminka.css"/>
 
    <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="bootstrap-3.3.7/js/bootstrap.js"></script> <!-- Bootstrap js -->
 
</head>
<body>
 
<div id="showmessage" style="display:none">&nbsp;</div>
 
<form action="edit.users.php" method="POST" id="updUsers">
    <div style="width:100%; height: 91vh; overflow:auto;">
        <table border="1" align="center">
            <tr>
                <td id="table"> ID</td>
                <td id="table"> Имя</td>
                <td id="table"> email</td>
                <td id="table"> Телефон</td>
            </tr>
            <?php
            if (!empty($_POST['box']))
                foreach ($func as $item):
                    if (in_array($item['id'], $_POST['box'])) { // проверяем, входит ли строка в выбранный список
                        $it = array();
                        $it['id'] = htmlspecialchars($item['id']);
                        $it['login'] = htmlspecialchars($item['login']);
                        $it['email'] = htmlspecialchars($item['email']);
                        $it['phone'] = htmlspecialchars($item['phone']);
                    ?>
                        <tr>
                            <td><?= $it['id'] ?></td>
 
                            <!-- В POST данных будут массивы login (id=>значение), email (id=>значение), phone (id=>значение),   -->
                            <td><input type="text" style="width: 100%; border: 1px solid white;"
                                       name="login[<?= $it['id'] ?>]" value="<?= $it['login'] ?>" required></td>
                            <td><input type="email" style="width: 100%; border: 1px solid white;"
                                       name="email[<?= $it['id'] ?>]" value="<?= $it['email'] ?>" required></td>
                            <td><input type="text" style="width: 100%; border: 1px solid white;"
                                       name="phone[<?= $it['id'] ?>]" value="<?= $it['phone'] ?>" required></td>
                        </tr>
                        <?php
                    }
                endforeach;
            ?>
        </table>
    </div>
    <div class="footer" align="center">
        <fieldset id="inputs">
            <a href="users.php"><button type="submit" id="btnBack">
                    <i class="fa fa-sign-out fa-lg"></i>&nbsp;&nbsp;Назад</button></a>
            <button style="float: right; margin-right: 5px; position: relative;" type="submit" id="btn_act2">
                <i class="fa fa-floppy-o"></i>&nbsp;&nbsp;Сохранить</button>
        </fieldset>
    </div>
</form>
 
<script>
    $(document).ready(function () {
        $('#updUsers').submit(function (e) {
            //отменяем стандартное действие при отправке формы
            e.preventDefault();
            //берем из формы метод передачи данных
            var m_method = $(this).attr('method'); // не нужно заменять слово method
            //получаем адрес скрипта на сервере, куда нужно отправить форму
            var m_action = $(this).attr('action'); // не нужно заменять слово action
            //получаем данные, введенные пользователем в формате input1=value1 и input2=value2...,
            //то есть в стандартном формате передачи данных формы
            var m_data = $(this).serialize();
            $.ajax({
                type: m_method,
                url: m_action,
                data: m_data,
                success: function (result) {
                    $('#showmessage').html(result);
                    document.location.href = 'users.php';
                }
            });
        });
    });
</script>
 
</body>
</html>
 
<?php
/* R::close();  завершить сессию */
?>
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
24.06.2017, 16:40  [ТС] 74
Цитата Сообщение от plohoyav Посмотреть сообщение
запрос update не мешает
Моё Вам спасибо ну и в вашу копилку репутации +!
Чисто гипотетически... если я напишу запрос insert (по аналогии с delete) и добавлю его после запроса на удаление, он же тоже не должен конфликтовать?

Добавлено через 24 минуты
файл ajax.php теперь как бы не нужен?! В него больше нет обращений.
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
24.06.2017, 19:09 75
там, где много слов, обман

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php
require_once 'db.php';
function updateUsers($login, $email, $phone){
    foreach($login as $id => $_){
        $item = R::load('users', $id);
        $item->login = $login[$id];
        $item->email = $email[$id];
        $item->phone = $phone[$id];
        R::store($item);
    }
    echo 'Обновление завершено';
    exit;
}
if(isset($_POST['login']) && is_array($_POST['login'])){
    updateUsers($_POST['login'], $_POST['email'], $_POST['phone']);
}
require_once 'libs/libs.cafe.php';
if (empty($_POST['box'])) {
    header("Location: users.php");
    exit();
}
if (isset($_GET['action']) AND $_GET['action']=='delete') {
    if (isset($_POST['box']) AND is_array($_POST['box'])) foreach ($_POST['box'] as $id)
    R::trash('users', intval($id)); // redbeanphp удаление
    header("Location: users.php");
    exit;
}
if (isset($_GET['action']) AND $_GET['action']=='dobavit') {
    if (isset($_POST['login']) AND isset($_POST['email']) AND isset($_POST['phone'])) {
      $w = R::dispense( 'users' );
      foreach ($_POST as $k=>$v) $w->$k = $v;
      $id = R::store( $w );
      echo 'Добавлен пользователь';
      //header("Location: users.php"); // для ajax запроса строчка не нужна
      exit;   
    }    
    exit;
}
$func = showAllUsers();
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <meta charset="utf-8">
    <title>Edit users</title>
    <link rel="shortcut icon" href="https://www.cyberforum.ru/images/favicon.ico" type="image/x-icon"/>
    <link rel="stylesheet" type="text/css" href="font-awesome-4.7.0/css/font-awesome.css"/> <!-- FontAwesome -->
    <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7/css/bootstrap.css"/> <!-- Bootstrap css -->
    <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7/css/bootstrap-theme.css"/>
    <link rel="stylesheet" type="text/css" href="css/adminka.css"/>
 
    <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="bootstrap-3.3.7/js/bootstrap.js"></script> <!-- Bootstrap js -->
 
</head>
<body>
 
<div id="showmessage" style="display:none">&nbsp;</div>
 
<form action="edit.users.php" method="POST" id="updUsers">
    <div style="width:100%; height: 91vh; overflow:auto;">
        <table border="1" align="center">
            <tr>
                <td id="table"> ID</td>
                <td id="table"> Имя</td>
                <td id="table"> email</td>
                <td id="table"> Телефон</td>
            </tr>
            <?php
            if (!empty($_POST['box']))
                foreach ($func as $item):
                    if (in_array($item['id'], $_POST['box'])) { // проверяем, входит ли строка в выбранный список
                        $it = array();
                        $it['id'] = htmlspecialchars($item['id']);
                        $it['login'] = htmlspecialchars($item['login']);
                        $it['email'] = htmlspecialchars($item['email']);
                        $it['phone'] = htmlspecialchars($item['phone']);
                    ?>
                        <tr>
                            <td><?= $it['id'] ?></td>
 
                            <!-- В POST данных будут массивы login (id=>значение), email (id=>значение), phone (id=>значение),   -->
                            <td><input type="text" style="width: 100%; border: 1px solid white;"
                                       name="login[<?= $it['id'] ?>]" value="<?= $it['login'] ?>" required></td>
                            <td><input type="email" style="width: 100%; border: 1px solid white;"
                                       name="email[<?= $it['id'] ?>]" value="<?= $it['email'] ?>" required></td>
                            <td><input type="text" style="width: 100%; border: 1px solid white;"
                                       name="phone[<?= $it['id'] ?>]" value="<?= $it['phone'] ?>" required></td>
                        </tr>
                        <?php
                    }
                endforeach;
            ?>
        </table>
    </div>
    <div class="footer" align="center">
        <fieldset id="inputs">
            <a href="users.php"><button type="submit" id="btnBack">
                    <i class="fa fa-sign-out fa-lg"></i>&nbsp;&nbsp;Назад</button></a>
            <button style="float: right; margin-right: 5px; position: relative;" type="submit" id="btn_act2">
                <i class="fa fa-floppy-o"></i>&nbsp;&nbsp;Сохранить</button>
        </fieldset>
    </div>
</form>
 
<script>
    $(document).ready(function () {
        $('#updUsers').submit(function (e) {
            //отменяем стандартное действие при отправке формы
            e.preventDefault();
            //берем из формы метод передачи данных
            var m_method = $(this).attr('method'); // не нужно заменять слово method
            //получаем адрес скрипта на сервере, куда нужно отправить форму
            var m_action = $(this).attr('action'); // не нужно заменять слово action
            //получаем данные, введенные пользователем в формате input1=value1 и input2=value2...,
            //то есть в стандартном формате передачи данных формы
            var m_data = $(this).serialize();
            $.ajax({
                type: m_method,
                url: m_action,
                data: m_data,
                success: function (result) {
                    $('#showmessage').html(result);
                    document.location.href = 'users.php';
                }
            });
        });
    });
</script>
 
</body>
</html>
 
<?php
/* R::close();  завершить сессию */
?>
ajax.php можно удалить
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
24.06.2017, 20:51  [ТС] 76
Цитата Сообщение от plohoyav Посмотреть сообщение
там, где много слов, обман
Вынужден не согласится. Да и в принципе если негативно смотреть на жизнь и ждать что тебя обманут, поверьте именно так и произойдет. Но мне то чем Вас обманывать? Я действительно не обладаю на данный момент такими обширными знаниями. И сам точно, так быстро бы не продвинулся, а так останется время на стили и прочую красоту. Так же пока не буду подсматривать в запрос insert, попробую написать на свой лад. А то совсем как то все легко вышло.
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
24.06.2017, 22:07 77
там, где много слов, непонимание

Добавлено через 19 минут
Цитата Сообщение от KillerJo Посмотреть сообщение
если негативно смотреть на жизнь и ждать что тебя обманут, поверьте именно так и произойдет
более половины россиян в этом году начали обманывать, потому что в прокат вышли фильмы, объясняющие преимущества обмана, обучающие ролики, обучающие книги, а не потому что я иначе стал смотреть на жизнь

Добавлено через 9 минут
Цитата Сообщение от KillerJo Посмотреть сообщение
Но мне то чем Вас обманывать?
фраза "Моё Вам спасибо" переводится как "ты мне ещё спасибо скажешь", то есть человек вроде бы говорит "спасибо", но говорит снисходительно, притворяясь благодарным, хорошо, спасибо вам большое за возможность подумать
0
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
24.06.2017, 23:35  [ТС] 78
Цитата Сообщение от plohoyav Посмотреть сообщение
более половины россиян...
фраза "Моё Вам спасибо" переводится как "ты мне ещё спасибо скажешь"
1. Не россиянин! Я примерно понял о чем идет речь. Это называют не обманом, а манипуляцией. Некоторые люди завладели этим искусством гораздо раньше чем в этом году. Книг я схожих не читал, фильмов пока таких тоже не смотрел, но преподаватель по защите информации на учебе, что то схожее рассказывал. Вместо того что бы рассказать, как сохранить цифровую информацию))
2. Хм... очень странно, а на какой вы язык то перевели эту фразу?! В общем не знаю зачем вы ищите скрытый смысл в словах благодарности. Не ищите зла... зло вас само найдет ¯\_ (ツ) _/¯
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
25.06.2017, 07:47 79
1. в российских школах иногда учат английскому языку, по учебникам и рассказам 19 века, но в США так не говорят
2. на разговорный
0
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
28.06.2017, 03:14  [ТС] 80
Цитата Сообщение от plohoyav Посмотреть сообщение
...
Пытаюсь сделать добавление через модальное окно. Но что то не получается самостоятельно справиться.

В общем делаю вот так:
Кликните здесь для просмотра всего текста
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
require_once 'db.php';
require_once 'libs/libs.cafe.php';
require_once 'admin.room.php';
$bar = showAllBar();
?>
<form method="POST">
    <div style="width:100%; height: 91vh; overflow:auto;">
        <table border="1" align="center">
            <tr>
                <td id="table" width="80px"> №</td>
                <td id="table" width="80px"> ID</td>
                <td id="table"> Название</td>
                <td id="table" width="150px"> Цена</td>
                <td id="table" style="width:50px"> Select</td>
            </tr>
            <?php
            $i = 1;
            foreach ($bar as $item) {
                ?>
                <tr>
                    <td># <?= $i ?></td>
                    <td><?= $item['id'] ?></td>
                    <td class="tbl_out"><?= $item['title'] ?></td>
                    <td><?= $item['price'] ?></td>
                    <td><input id="checkbox" type="checkbox" name="box[]" value="<?= $item['id'] ?>"></td>
                </tr>
                <?php
                $i++;
            }
            ?>
 
        </table>
    </div>
    <div class="footer" align="center">
        <fieldset id="inputs">
            <button style="left: 10%; position: relative;" formaction="edit.bar.php?action=delete" formmethod="POST"
                    type="submit" onclick="delMenu();" id="btn_act" name="del">
                <i class="fa fa-user-times"></i>&nbsp;&nbsp;Удалить
            </button>
            <button style="left: 10%; position: relative;" formaction="edit.bar.php" formmethod="POST"
                    type="submit" onclick="editMenu();" id="btn_act" name="edit">
                <i class="fa fa-repeat"></i>&nbsp;&nbsp;Изменить
            </button>
 
            <a href="#win1" class="button button-green"><button style="left: 10%; position: relative;" type="button" id="btn_act">
                <i class="fa fa-plus"></i>&nbsp;&nbsp;Добавить
            </button></a>
 
<!-- --------------------------------------------------------------------------------------- -->
 
            <!-- МОДАЛЬНОЕ ОКНО -->
            <a href="#x" class="overlay" id="win1"></a>
 
 
            <div class="popup" id="inputs">
                <p style="font-size: 32px; letter-spacing: 20px; "><b>БАР</b></p>
                <center>
                    <input type="text" style="margin-top: 25px; width: 480px;"
                           name="title[<?= $it['id'] ?>]" value="<?= $it['title'] ?>" placeholder="Товар"><br>
                    <input type="text" style="margin-bottom: 25px; margin-top: 10px; width: 480px;"
                           name="price[<?= $it['id'] ?>]" value="<?= $it['price'] ?>" placeholder="Цена"><br>
 
                    <button style="" type="submit" id="btn_add" formaction="edit.bar.php?action=add" formmethod="POST">
                        <i class="fa fa-floppy-o"></i>&nbsp;&nbsp;Сохранить
                    </button>
                    <a href="bar.php">
                        <button style="margin-bottom: 10px;" type="submit" id="btn_no">
                            <i class="fa fa-times"></i>&nbsp;&nbsp;Отменить
                        </button>
                    </a>
 
                </center>
                <a class="closeM" title="Закрыть" href="#close"></a>
            </div>
 
<!-- --------------------------------------------------------------------------------------- -->
 
            <!-- ОРГАНИЗОВАТЬ ПОИСК -->
            <button style="float: right; margin-right: .2%; position: relative;" formaction="searchBar.php"
                    formmethod="POST" type="submit" id="btn_act2">
                <i class="fa fa-search"></i>&nbsp;&nbsp;Найти
            </button>
 
            <input type="search" placeholder="Поиск"
                   style="float: right; margin-right: .2%; position: relative;">
        </fieldset>
    </div>
</form>


на странице edit.bar.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php
require_once 'db.php';
// update Bar
function updateBar($title, $price){
    foreach($title as $id => $_){
        $item = R::load('bar', $id);
        $item->title = $title[$id];
        $item->price = $price[$id];
        R::store($item);
    }
}
if(!empty($_POST['title']) && is_array($_POST['title'])){
    updateBar($_POST['title'], $_POST['price']);
    exit;
}
require_once 'libs/libs.cafe.php';
if (empty($_POST['box'])) {
    header("Location: bar.php");
    exit();
}
if (isset($_GET['action']) AND $_GET['action']=='delete') {
    if (isset($_POST['box']) AND is_array($_POST['box']))
        foreach ($_POST['box'] as $id)
            R::trash('bar', intval($id)); // redbeanphp удаление
    header("Location: bar.php");
    exit;
}
if (isset($_GET['action']) AND $_GET['action']=='add') {
    if (isset($_POST['title']) AND isset($_POST['price'])) {
        $w = R::dispense( 'bar' );
        foreach ($_POST as $k=>$v) $w->$k = $v;
        $id = R::store( $w );
        /*echo 'Добавлен пользователь';*/
        header("Location: bar.php"); // для ajax запроса строчка не нужна
        exit;
    }
    exit;
}
$bar = showAllBar();
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <meta charset="utf-8">
    <title>Edit users</title>
    <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"/>
    <link rel="stylesheet" type="text/css" href="font-awesome-4.7.0/css/font-awesome.css"/> <!-- FontAwesome -->
    <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7/css/bootstrap.css"/> <!-- Bootstrap css -->
    <link rel="stylesheet" type="text/css" href="bootstrap-3.3.7/css/bootstrap-theme.css"/>
    <link rel="stylesheet" type="text/css" href="css/adminka.css"/>
 
    <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="bootstrap-3.3.7/js/bootstrap.js"></script> <!-- Bootstrap js -->
 
</head>
<body>
 
<div id="showmessage" style="display:none">&nbsp;</div>
 
<form action="edit.bar.php" method="POST" id="updBar">
    <div style="width:100%; height: 91vh; overflow:auto;">
        <table border="1" align="center">
            <tr>
                <td id="table"> ID</td>
                <td id="table"> Товар</td>
                <td id="table"> Цена</td>
            </tr>
            <?php
            if (!empty($_POST['box']))
                foreach ($bar as $item):
                    if (in_array($item['id'], $_POST['box'])) { // проверяем, входит ли строка в выбранный список
                        $it = array();
                        $it['id'] = htmlspecialchars($item['id']);
                        $it['title'] = htmlspecialchars($item['title']);
                        $it['price'] = htmlspecialchars($item['price']);
                        ?>
                        <tr>
                            <td><?= $it['id'] ?></td>
                            <td><input type="text" style="width: 100%; border: 1px solid white;"
                                       name="title[<?= $it['id'] ?>]" value="<?= $it['title'] ?>" required></td>
                            <td><input type="text" style="width: 100%; border: 1px solid white;"
                                       name="price[<?= $it['id'] ?>]" value="<?= $it['price'] ?>" required></td>
                        </tr>
                        <?php
                    }
                endforeach;
            ?>
        </table>
    </div>
    <div class="footer" align="center">
        <fieldset id="inputs">
            <a href="bar.php"><button type="submit" id="btnBack">
                    <i class="fa fa-sign-out fa-lg"></i>&nbsp;&nbsp;Назад</button></a>
            <button style="float: right; margin-right: 5px; position: relative;" type="submit" id="btn_act2">
                <i class="fa fa-floppy-o"></i>&nbsp;&nbsp;Сохранить</button>
        </fieldset>
    </div>
</form>
 
<script>
    function vern() {
        document.location.href = 'bar.php';
    }
    $(document).ready(function () {
        $('#updBar').submit(function (e) {
            //отменяем стандартное действие при отправке формы
            e.preventDefault();
            //берем из формы метод передачи данных
            var m_method = $(this).attr('method'); // не нужно заменять слово method
            //получаем адрес скрипта на сервере, куда нужно отправить форму
            var m_action = $(this).attr('action'); // не нужно заменять слово action
            //получаем данные, введенные пользователем в формате input1=value1 и input2=value2...,
            //то есть в стандартном формате передачи данных формы
            var m_data = $(this).serialize();
            $.ajax({
                type: m_method,
                url: m_action,
                data: m_data,
                success: function (result) {
                    $('#showmessage').html(result);
                    setTimeout(vern, 0);
                }
            });
        });
    });
</script>
 
</body>
</html>
0
28.06.2017, 03:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2017, 03:14
Помогаю со студенческими работами здесь

Обновление значения в таблице
Здравствуйте, подскажите пожалуйста как решить такую проблемку. На сервере есть таблица с данными,...

Обновление записей в таблице
Подскажите пожалуйста, есть ли возможность отловить событие обновления таблицы в mysql, и, если это...

Обновление строк в таблице БД
Здравствуйте, у меня проблема такая. Есть таблица, куда я добавляю данные через файл insert-ом 1...

Обновление записей в таблице
Друзья, всем здравствуйте. Есть задача сделать таблицу, что то вроде Excel но в браузере, т.е....


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru