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

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

12.04.2015, 21:23. Показов 2173. Ответов 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
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru