У меня есть страница PHP, которая содержит форму с некоторыми различными полями ввода, e. г. день, месяц, год и т. д. Метод формы POST, через GET отправляется только одно не редактируемое поле (идентификатор пользователя).
Конечно, есть кнопка «Submit», которая запускает форму Action (PHP Script на сервере).
Теги формы также содержат таблицу с пустыми ячейками. Теперь возникает мой вопрос:
Если пользователь щелкает по одной из ячеек таблицы, форма должна быть отправлена, но в дополнение к обычным данным формы также должен передаваться идентификатор ячейки таблицы (если для меня это не имеет значения через POST или GET). Как я могу это сделать?
// Редактировать 2:
...
<form method="post" action="<?= DOMAIN?>/.../addUserTimetable.php?uid=<?= $user->getUserID() ?>">
<select id="day" name="day">
...
</select>
...
<input name="yearend" id="yearend" ...>
<button type="submit">...</button>
<table class="bordered">
<tr>
<th>Std.</th>
<th>Montag</th>
<th>Dienstag</th>
<th>Mittwoch</th>
<th>Donnerstag</th>
<th>Freitag</th>
</tr>
<?php
for($i=1; $i<13;$i++) {
echo "<tr>";
echo "<th>".$i. "</th>";
for($j=1;$j<6;$j++) {
echo "<td id='h".$i. "d".$j. "' onclick='???'></td>";
}
echo "</tr>";
}
?>
</table>
</form>
...
Процессия на стороне сервера — это хорошо, но у меня нет никаких идей — даже после двух часов работы в Google — как я могу передать идентификатор ячейки дополнительно.
Это не должно быть трудно. Посмотрите на следующий пример:
<form>
<input type="text" name="something">
<table>
<tr>
<td><input type="submit" name="cel1">
</tr>
<tr>
<td><input type="submit" name="cel2">
</tr>
<tr>
<td><input type="submit" name="cel13">
</tr>
</table>
<input type="submit" value="save">
</form>
Придавая кнопкам отправки в ячейках таблицы атрибут name, это имя также будет присутствовать в качестве ключа на $_REQUEST
, Продолжайте и var_dump $ _REQUEST, и вы увидите, что вы можете узнать в бэкэнде, какая кнопка была нажата, проверив, какая клавиша существует.
Обратите внимание, что POST / GET здесь совершенно не имеет значения, оба будут работать одинаково. И, очевидно, вы можете применить некоторые CSS к этим кнопкам, чтобы сделать их прозрачными и положить их поверх ячеек таблицы, чтобы они не выглядели как кнопки, а просто «фиксировали» щелчок пользователя.
Последнее замечание: вы уверены, что хотите отправить userID в качестве параметра GET? Это было бы очень легко для кого-то с плохими намерениями манипулировать. Не следует отправлять идентификатор вообще, а хранить его в сеансе на сервере.
Других решений пока нет …