Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 18.05.2014
Сообщений: 62

Передача обработчику цикла параметров input

12.04.2015, 21:23. Показов 2131. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Имеется таблица с 12 строками

Все 12 строк выведены с БД в цикле. Каждая из ячеек содержит в себе input, где в атрибут value подставляется соответствующая запись из БД. Прилагаю код для большей наглядности и понятливости:
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
$bd = mysql_query("SELECT * FROM dgu");
        
                echo "<table border='0' width='500'><tr>
                <td><b>№</b></td>
                <td><b>Направление</b></td>
                <td><b>Дисциплина</b></td>
                <td><b>Курс/Семестр</b></td>
                <td><b>Группа</b></td>
                <td><b>Вид занятия</b></td>
                <td><b>Нагрузка(часы)</b></td>
                </tr>";
        while ($myrow = mysql_fetch_assoc($bd)) 
           {
        printf ("
                <tr>
                <td><input type='text' value='$myrow[id]' size='4'></td>
                <td><input type='text' value='$myrow[profile]' size='40'></td>
                <td><input type='text' value='$myrow[discipline]' size='20'></td>
                <td><input type='text' value='$myrow[course_semestr]' size='4'></td>
                <td><input type='text' value='$myrow[group]' size='10'></td>
                <td><input type='text' value='$myrow[type]' size='15'></td>
                <td><input type='text' value='$myrow[count_hours]' size='4'></td>
                </tr>
                ");
        }
            echo "</table>";
    echo "<form method=POST action='update.php'>
       <input type='submit' name='submit' id='submit' value='Обновить'>
       </form>";
Теперь задача: как сделать так, чтобы весь этот цикл можно было отправить обработчику?. Что нужно прописать в обработчике, чтобы он принял весь этот цикл и занес обновление в базу. Что то типа эксель, где мы можем изменять произвольные ячейки, а потом сохранять сразу всю таблицу.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2015, 21:23
Ответы с готовыми решениями:

Передача массива обработчику
Ребят чет не могу понять как передать массив и вообще создать его)). 1)В пхп делаю выборку из базы 10 000 строк ...

Передача переменных из input в php
Уважаемые единомышленники, привет! Осваиваю php+html. Возник вопрос по инициализации переменных и передача их в запрос...

Передача параметров.
Здравствуйте вот такая проблемка. Передаю данные из inv.php в statsup.js, провожу расчеты все нормально. Получаю конечный результат (sila,...

8
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
12.04.2015, 22:07
Aleoo,
Внесите таблицу в форму
HTML5
1
2
3
4
<form method=POST action='update.php'>
<table> ... </table>
       <input type='submit' name='submit' id='submit' value='Обновить'>
       </form>"
И присвойте инпутам уникальные имена, потом по их имени уже получите содержимое на сервере
0
1 / 1 / 0
Регистрация: 18.05.2014
Сообщений: 62
12.04.2015, 22:11  [ТС]
Спасибо за ответ. Дело в том что количество записей не фиксированно...Будет постоянно меняться. Поэтому данный вариант не подходит к сожалению..
0
871 / 721 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
12.04.2015, 22:30
Aleoo,
Можно еще добавить поле с общим количеством записей хотя и не обязательно, тогда форма будет иметь вид
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form action="">
<table>
    <tr>
        <td>
            <input type="text" name="id1">
            <input type="text" name="name1">
        </td>
    </tr>
    <tr>
        <td>
            <input type="text" name="id2">
            <input type="text" name="name2">
        </td>
    </tr>
</table>
<input type="hidden" name="count">
 
<input type="submit">
</form>
А на сервере надо будет получить id1, name1 и так далее до count
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.04.2015, 23:27
это не так делается. Это делается при помощи массива.
Если id, которые получите, не важны, то называть просто
HTML5
1
<input name="some_name[]" ....
Порядковый номер будет присваиваться автоматически, как в обычном массиве (индексация начинается с нуля)
Либо же указать нужные id-шники
PHP/HTML
1
<input name="some_name[<?php echo (int) $row['id']; ?>]" ....
P.S. Не надо мешать вывод html с php. Есть альтернативный синтаксис конструкций, есть открытие/закрытие тегов
Цитата Сообщение от Aleoo Посмотреть сообщение
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
$bd = mysql_query("SELECT * FROM dgu");
        
                echo "<table border='0' width='500'><tr>
                <td><b>№</b></td>
                <td><b>Направление</b></td>
                <td><b>Дисциплина</b></td>
                <td><b>Курс/Семестр</b></td>
                <td><b>Группа</b></td>
                <td><b>Вид занятия</b></td>
                <td><b>Нагрузка(часы)</b></td>
                </tr>";
        while ($myrow = mysql_fetch_assoc($bd)) 
           {
        printf ("
                <tr>
                <td><input type='text' value='$myrow[id]' size='4'></td>
                <td><input type='text' value='$myrow[profile]' size='40'></td>
                <td><input type='text' value='$myrow[discipline]' size='20'></td>
                <td><input type='text' value='$myrow[course_semestr]' size='4'></td>
                <td><input type='text' value='$myrow[group]' size='10'></td>
                <td><input type='text' value='$myrow[type]' size='15'></td>
                <td><input type='text' value='$myrow[count_hours]' size='4'></td>
                </tr>
                ");
        }
            echo "</table>";
    echo "<form method=POST action='update.php'>
       <input type='submit' name='submit' id='submit' value='Обновить'>
       </form>";
Замените на что-то похожее на хотя бы такое:
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
28
<?php
....
$bd = mysql_query("SELECT * FROM dgu"); ?>
<form method=POST action='update.php'>
    <table border='0' width='500'>
        <tr>
            <td><b></b></td>
            <td><b>Направление</b></td>
            <td><b>Дисциплина</b></td>
            <td><b>Курс/Семестр</b></td>
            <td><b>Группа</b></td>
            <td><b>Вид занятия</b></td>
            <td><b>Нагрузка(часы)</b></td>
        </tr>
      <?php while ($myrow = mysql_fetch_assoc($bd)) : ?>
        <tr>
            <td><input type='text' value='<?php echo $myrow['id']; ?>' size='4'></td>
            <td><input type='text' value='<?php echo $myrow['profile']; ?>' size='40'></td>
            <td><input type='text' value='<?php echo $myrow['discipline']; ?>' size='20'></td>
            <td><input type='text' value='<?php echo $myrow['course_semestr']; ?>' size='4'></td>
            <td><input type='text' value='<?php echo $myrow['group']; ?>' size='10'></td>
            <td><input type='text' value='<?php echo $myrow['type']; ?>' size='15'></td>
            <td><input type='text' value='<?php echo $myrow['count_hours']; ?>' size='4'></td>
        </tr>
      <?php endwhile; ?>
    </table>
    <input type='submit' name='submit' id='submit' value='Обновить'>
</form>
Хорошо бы еще все переменные фильтровать с помощью htmlspecialchars, ну да ладно.
0
1 / 1 / 0
Регистрация: 18.05.2014
Сообщений: 62
15.04.2015, 18:01  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
Если id, которые получите, не важны, то называть просто
по id ведь передаются данные в обработчику. Получается что важны..
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.04.2015, 19:35
Aleoo, и в чем проблема?
Цитата Сообщение от KOPOJI Посмотреть сообщение
Либо же указать нужные id-шники
...
куча кода
0
1 / 1 / 0
Регистрация: 18.05.2014
Сообщений: 62
15.04.2015, 19:47  [ТС]
KOPOJI, Проблема в том, что я не могу принять эти переменные в обработчике. Если я отправляю одну запись(к примеру с id = 1),
HTML5
1
2
3
4
5
<form method='POST', action="update.php">
    <td><input type="text" name="id" value="<?php echo $myrow['id']; ?>"></td>
    <td><input type='text' id="profile" name="profile" value="<?php echo $myrow['profile']; ?>"></td>
    <td><input type='text' id="discipline" name="discipline" value="<?php echo $myrow['discipline']; ?>"></td>
    <input type='submit' name='submit' id='submit'>
то на стороне обработчика я пишу что то типа обнови запись где параметр id равен id
PHP
1
$bde = mysql_query("UPDATE list SET  profile='$profile', discipline='$discipline' WHERE id='$id'");
И эти данные успешно "летят" в базу. Но это в случае с одной формой. А у меня по сути их 12. Я принципе могу сделать так, чтобы каждую форму сохранять отдельно, но если этих форм будет больше 100, легче ведь внести изменения в определенные ячейки, и сразу все сохранить.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
15.04.2015, 19:53
Лучший ответ Сообщение было отмечено Aleoo как решение

Решение

я выше написал как обрабатывать массивы данных. И даже часть этого объяснения еще раз сцитировал.
Обработка аналогично, только обрабатывается в цикле
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2015, 19:53
Помогаю со студенческими работами здесь

Передача параметров
Всем привет. Есть один php-файл: &lt;script&gt; function setvar() { var x=5; var y=12; } &lt;/script&gt;

Передача массива из input PHP + AJAX
Приветствую! Передаю массив из формы через ajax &lt;script type=&quot;text/javascript&quot;&gt; function saveopt() { var id =...

Передача параметров обработчику событий
при запуске программы создаётся массив пикчербоксов и заполняется свойствами. там же создаётся обработчик событий для каждого пикчербокса,...

Работа с живыми данными из input и передача параметров на лету
Всем привет! Помогите пожалуйста начинающему Есть форма: Вводим имя сервера в первое поле Server Name, ниже нажимаем на...

передача содержимого обработчику
Подскажите пожалуйста как мне передать содержимое в tid2 массиву $size index.php &lt;label&gt; &lt;select&gt; &lt;option...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru