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

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

14.06.2017, 04:02. Показов 8519. Ответов 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
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
28.06.2017, 03:20  [ТС] 81
Author24 — интернет-сервис помощи студентам
...

Запись добавляется, но остаюсь на странице edit.bar.php не переходит на bar.php А при попытке удаления из-за модалки добавляются пустые строки при попытке удалить строку. Не могу разобраться что не так я делаю.
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
28.06.2017, 08:33 82
Можно добавить обработчик формы добавления в файл edit.bar.php
0
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
28.06.2017, 14:25  [ТС] 83
Цитата Сообщение от plohoyav Посмотреть сообщение
Можно добавить обработчик формы добавления в файл edit.bar.php
Так он же вроде и так в edit.bar.php сейчас...
Суть вот в чем. На странице bar.php есть кнопки внизу удалить, изменить, добавить. По нажатию на кнопку [добавить] она вызывает на этой же странице модальное окно в нем два inputs и две кнопки submit, одна из них [сохранить] нажав на которую происходит action запроса insert, (который сейчас лежит в файле edit.bar.php).
И вот, когда я нажимаю эту кнопку, меня перекидывает на страницу обработчика edit.bar.php (пустую белую страницу) и не возвращает назад в bar.php. Когда я возвращаюсь назад ручками, вижу вновь созданную запись, выделяю чек боксом эту запись и пытаюсь удалить меня опять перекидывает на (пустую белую страницу) edit.bar.php. Когда вновь ручками возвращаюсь там добавлена пустая запись а предыдущая не удалилась.

з.ы.
Если убрать блок <!-- модальное окно --> в файле bar.php все работает... ну, кроме добавить.
0
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
29.06.2017, 15:51  [ТС] 84
Закоментировал запрос, но добавление все равно происходит... магия %)
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
29.06.2017, 17:11 85
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
<?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" value="" placeholder="Товар"><br>
                    <input type="text" style="margin-bottom: 25px; margin-top: 10px; width: 480px;"
                           name="price" value="" 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>
Добавлено через 1 минуту
ошибка в использовании переменной $it в форме добавления

Добавлено через 3 минуты
libs/libs.cafe.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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<?php
// R::fancyDebug( TRUE ); // проверка ошибок
/********************************************* Edit USER **********************************************/
// view table Allusers
function showAllUsers(){
    $query = R::findAll( 'users' );
    return $query;
}
 
// delete users
function deleteUsers() {
 
}
 
 
// search user
 
 
 
// ban 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']);
}
 
/********************************************* Edit MENU ************************************************/
function showAllMenu(){
    $query = R::findAll( 'menu' );
    return $query;
}
/*
// delete Menu
function deleteMenu() {
 
}
*/
 
// update Menu
function updateMenu($title, $composition, $price){
    foreach($title as $id => $_){
        $item = R::load('menu', $id);
        $item->title = $title[$id];
        $item->composition = $composition[$id];
        $item->price = $price[$id];
        R::store($item);
    }
}
 
if(!empty($_POST['title']) && is_array($_POST['title'])){
    updateMenu($_POST['title'], $_POST['composition'], $_POST['price']);
}
 
/********************************************* Edit Childrens menu ************************************************/
// view table AllChildrens
function showAllChildrens(){
    $query = R::findAll( 'childrens' );
    return $query;
}
 
function updateChildrens($title, $composition, $price){
    foreach($title as $id => $_){
        $item = R::load('childrens', $id);
        $item->title = $title[$id];
        $item->composition = $composition[$id];
        $item->price = $price[$id];
        R::store($item);
    }
}
 
if(!empty($_POST['title']) && is_array($_POST['title'])){
    updateChildrens($_POST['title'], $_POST['composition'], $_POST['price']);
}
 
// insert addChildrens
function addChildrens(){
 
}
 
/********************************************* Edit Breakfast ************************************************/
// view table AllBrekfast
function showAllBreakfast(){
    $query = R::findAll( 'breakfast' );
    return $query;
}
 
function updateBreakfast($title, $composition, $price){
    foreach($title as $id => $_){
        $item = R::load('breakfast', $id);
        $item->title = $title[$id];
        $item->composition = $composition[$id];
        $item->price = $price[$id];
        R::store($item);
    }
}
 
if(!empty($_POST['title']) && is_array($_POST['title'])){
    updateBreakfast($_POST['title'], $_POST['composition'], $_POST['price']);
}
 
 
// insert addBreakfast
function addBreakfast(){
 
}
 
/********************************************* Edit Business Lunch ************************************************/
// view table AllLunch
function showAllLunch(){
    $query = R::findAll( 'lunch' );
    return $query;
}
 
// update Lunch
function updateLunch($title, $composition, $price){
    foreach($title as $id => $_){
        $item = R::load('lunch', $id);
        $item->title = $title[$id];
        $item->composition = $composition[$id];
        $item->price = $price[$id];
        R::store($item);
    }
}
 
if(!empty($_POST['title']) && is_array($_POST['title'])){
    updateLunch($_POST['title'], $_POST['composition'], $_POST['price']);
}
 
// insert addLunch
function addLunch(){
 
}
 
/************************************************** Edit Bar *****************************************************/
// view table AllBar
function showAllBar(){
    $query = R::findAll( 'bar' );
    return $query;
}
 
// insert addBar
function addBar(){
 
}
 
?>
Добавлено через 3 минуты
ошибка видна, если не отключать вывод ошибок php на экран

Код
Fatal error: Cannot redeclare updateBar() (previously declared in /srv/http/basic/web/edit.bar.php:4) in /srv/http/basic/web/libs/libs.cafe.php on line 158
redeclare означает "повторное объявление", в данном случае функция updateBar объявлена в libs.cafe.php повторно

Добавлено через 2 минуты
admin.room.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
<?php
if (!isset($_SESSION)) session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <meta charset="utf-8">
    <title>Administrator room</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="js/func.table.js"></script>
    <script type="text/javascript" src="bootstrap-3.3.7/js/bootstrap.js"></script> <!-- Bootstrap js -->
 
</head>
<body>
 
<div class="header" align="center">
<a href="index.php" style="float: left; padding: 5px; color: #fff;"><i id="home" class="fa fa-home fa-2x"></i></a>
<a href="users.php"><button id="btn">Пользователи</button></a>
<a href="menu.php"><button id="btn">Основное меню</button></a>
<a href="childrens.php"><button id="btn">Детское меню</button></a>
<a href="breakfast.php"><button id="btn">Завтраки</button></a>
<a href="lunch.php"><button id="btn">Бизнес ланч</button></a>
<a href="bar.php"><button id="btn">Бар</button></a>
<a href="logout.php"><button id="btnExit" class="fa fa-sign-out fa-lg">&nbsp;&nbsp;Выйти</button></a>
</div><br><br>
 
</body>
</html>
Добавлено через 1 минуту
ошибка в повторном начале сессии (session_start), чтобы исключить повторение можно использовать проверку
PHP
1
if (!isset($_SESSION))
если не объявлена переменная $_SESSION, то начать сессию
0
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
29.06.2017, 18:56  [ТС] 86
Я извиняюсь, это мой косяк. Информация вышла разная т.к. я всё таки пытаюсь что то делать самостоятельно поэтому выложенный код устарел. Вот тут изменения с модальным окном.

Добавлено через 1 час 13 минут
А на страничке admin.room огрызок session_start, пытался реализовать запрет перехода через ввод в строке поиска браузера, на пример ввести admin.php и перейти на страницу admin.php не вводя логин и пасс. Что то типо:
PHP
1
2
3
4
5
<?php
if(($_SESSION['login'] !== 1) AND ($_SESSION['pass'] !== 1))
    header("Location: index.php");
exit();
?>
Но почему то не вышло надо читать про сессии внимательнее видимо.

По поводу включить вывод ошибок:
PHP
1
 R::fancyDebug( TRUE );
будут тогда они всегда... ибо выходят перед хидером
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
29.06.2017, 19:58 87
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
<?php
require_once 'db.php';
require_once 'libs/libs.cafe.php';
require_once 'admin.room.php';
$bar = showAllBar();
?>
<form method="" action="">
    <!-- МОДАЛЬНОЕ ОКНО -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Закрыть">
                        <span aria-hidden="true">×</span>
                    </button>
                    <h4 class="modal-title" id="myModalLabel">БАР</h4>
                </div>
                <center>
                    <div class="modal-body">
                        <input type="text" style="margin-top: 25px; width: 480px;"
                               name="title" value="" placeholder="Товар"><br>
                        <input type="text" style="margin-bottom: 25px; margin-top: 10px; width: 480px;"
                               name="price" value="" placeholder="Цена"><br>
 
                    </div>
                    <div class="modal-footer">
                        <button type="submit" id="btn_act2"
                                formaction="edit.bar.php?action=add" formmethod="POST">Сохранить
                        </button>
 
                        <button type="button" id="btn_act" data-dismiss="modal">Закрыть</button>
                    </div>
                </center>
            </div>
        </div>
    </div>
    <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 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>
 
                <button style="left: 10%; position: relative;" type="button" id="btn_act"
                        data-toggle="modal" data-target="#myModal">
                    <i class="fa fa-plus"></i>&nbsp;&nbsp;Добавить
                </button>
                </a>
                <!-- --------------------------------------------------------------------------------------- -->
 
                <!-- ОРГАНИЗОВАТЬ ПОИСК -->
                <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;
}
// add bar
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 );
    }
    header("Location: bar.php");
    exit;
}
// delete bar
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));
    header("Location: bar.php");
    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>
при добавлении товара передаются поля title и price
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
30.06.2017, 00:06  [ТС] 88
Цитата Сообщение от plohoyav Посмотреть сообщение
при добавлении товара передаются поля title и price
Забавно что им не надо ничего назначать ни value ни id да и в самом bar.php надо было просто передвинуть блок. Блин, я двигать двигал, но не так
0
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
08.07.2017, 03:02  [ТС] 89
Цитата Сообщение от plohoyav Посмотреть сообщение
...
В моем случае эта поговорка реально в тему... "Не понос так золотуха".
Если нажимаю в поле инпут которое якобы должно быть поиском + ввод оно добавляет пустую строку в таблицу (у инпута поиск id и name уникальны).

Эту беду я заметил после того как добавил поиск на страницу, сам поиск работает, так же работают команды удалить и изменить... но отвалилась функция добавить.
Если в инпут который якобы search (после добавления кода поиск) на странице users.php ткнуть и нажать enter срабатывает кнопка удалить, каким боком я даже представить не берусь. А например если на страничке bar.php сделать аналогичные действия выкинет ошибку (скрин ниже).
data - это name инпута.
Миниатюры
Множественное обновление данных в таблице  
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
10.07.2017, 19:36 90
чтобы не получилось, что я вношу изменения в один код, а вы используете другой - выложите свежую версию файлов
0
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
10.07.2017, 20:42  [ТС] 91
Цитата Сообщение от plohoyav Посмотреть сообщение
чтобы не получилось, что я вношу изменения в один код, а вы используете другой - выложите свежую версию файлов
Вот тут заберите пожалуйста.
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
10.07.2017, 22:54 92
bar.php выдало ошибку Notice undefined $i variable

исправляется установкой начального значения перед обращением к переменной, инкрементом $i в цикле

<?php
$i = 1;
while ($item = mysqli_fetch_array($search_result)):
?>
<tr>
<td># <?= $i++; ?></td>

Добавлено через 2 минуты
если ошибки не видел, в файле php.ini нужно найти строку, начинающуюся на
Код
error_reporting =
и заменить строку на
Код
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
10.07.2017, 23:27  [ТС] 93
Цитата Сообщение от plohoyav Посмотреть сообщение
bar.php выдало ошибку Notice undefined $i variable
Блин я как обычно, поспешил... давно удалил поиск в коде, что бы разобраться почему инпут сбоит.Увидел ваше сообщение и в скоростном режиме накидывал обратно.
Да, вы правы изначально код выглядит так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            <?php
            $i = 1;
            while ($item = mysqli_fetch_array($search_result)):
                ?>
                <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++;
            endwhile;
            ?>
То же касаемо остальных:

menu
childrens
lunch
breakfast
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <?php
    $i = 1;
    while ($item = mysqli_fetch_array($search_result)):
        ?>
        <tr>
            <td># <?=$i?></td>
            <td><?=$item['id']?></td>
            <td><?=$item['title']?></td>
            <td class="tbl_out"><?=$item['composition']?></td>
            <td><?=$item['price']?></td>
            <td><input id="checkbox" type="checkbox" name="box[]" value="<?= $item['id'] ?>"></td>
        </tr>
        <?php
        $i++;
    endwhile;
    ?>


Ошибка вылезла потому что в закрывающем теге endwile отсутствовала $i++;
Но проблема с инпутами, актуальна.
Проверил в php.ini
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT - прописаны.
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
10.07.2017, 23:37 94
при поиске новая строка в таблицу не добавляется

при нажатии enter в поле поиска форма отправляется первой по-очереди кнопкой с типом submit - кнопкой удалить

с помощью jquery можно перехватить нажатие enter и отправить форму, для этого полю поиска нужно добавить id="pole_poiska"

внизу формы добавить код
Javascript
1
2
3
4
5
6
7
8
<script>
$("#pole_poiska").keypress(function(e) {
  if(e.which == 13) {
      $("form").append("<input type='hidden' name='search' value='1'>");
      $("form").submit();
  }
});
</script>
в данном случае клавиша Enter имеет keypress равный 13
при нажатии кнопки поиск вместе со всеми данными отправляется search, но при обычной отправке формы нажатием enter на поле для ввода search отправлен не будет, поэтому в качестве замены создаётся скрытое hidden поле c name = search
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
11.07.2017, 00:25  [ТС] 95
Вы кликали в других кнопках, бар, завтрак на поиск + ентер? Поиск работает я об это писал но попробуйте добавить запись.

Цитата Сообщение от plohoyav Посмотреть сообщение
при поиске новая строка в таблицу не добавляется
Если удалить код поиска, и в строке поиска кликнуть + ентер, то строка добавляется. Вот выложенный старый код, он в принципе не особо сильно преобразовался, лишь добавлением модального окна с формой отправить. Плесал от него, стыдно было просить помощи вновь, пытался сам.
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
11.07.2017, 05:50 96
ошибка при добавлении возникает из-за лишних данных, которые скрипт пытается загрузить в таблицу

чтобы избежать ошибки, обычно форму добавления помещают в свой тег form и тогда данные таблицы и формы добавления не перемешиваются, но чтобы было проще я добавил проверку вхождения передаваемых переменных в список полей таблицы

например, файл edit.menu.php
PHP
1
2
3
        $w = R::dispense( 'menu' );
        foreach ($_POST as $k=>$v) if (in_array($k,array('title','composition','price'))) $w->$k = $v;
        $id = R::store( $w );
https://files.fm/u/rc3sas8b
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
11.07.2017, 14:50  [ТС] 97
Цитата Сообщение от plohoyav Посмотреть сообщение
ошибка при добавлении возникает из-за лишних данных, которые скрипт пытается загрузить в таблицу
Спасибо, все работает
Оказывается можно несколько форм на странице иметь, кстати а почему писать проверку проще чем заключить кнопку с инпутом в теги form?
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
11.07.2017, 16:36 98
для экономии времени, проверка занимает 1 строку, а проверять вёрстку, исправлять скрипты под две формы займёт 15минут
1
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
11.07.2017, 18:46  [ТС] 99
Спасибо, ценный опыт.
0
6 / 6 / 1
Регистрация: 27.12.2016
Сообщений: 127
15.07.2017, 05:10  [ТС] 100
Цитата Сообщение от plohoyav Посмотреть сообщение
ошибка при добавлении возникает из-за лишних данных, которые скрипт пытается загрузить в таблицу
Поторопился, в мазиле все хорошо в хроме (инпут+ентер) все равно срабатывает удалить пользователя, а в менюхах добавляет пустые строки.
0
15.07.2017, 05:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.07.2017, 05:10
Помогаю со студенческими работами здесь

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

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

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

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


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

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