2016-06-25 3 views
0

У меня есть страница PHP, которая содержит форму с несколькими полями ввода, e. г. день, месяц, год и т. д. Метод формы POST, только одно редактируемое поле (идентификатор пользователя) отправляется через GET. Конечно, есть «Submit» -Button, который запускает форму Action (PHP Script on Server).
В тегах формы также содержится таблица с пустыми ячейками. Теперь настает мой вопрос:Отправить "Button" -ID on Отправить

Если пользователь нажимает на одну из ячеек таблицы, форма должна быть отправлена, но дополнительно к данным регулярной формы должен также передаваться идентификатор ячейки таблицы (если через POST или GET Для меня это важно. Как я могу это сделать?

// Edit 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 - как я мог передать идентификатор ячейки дополнительно.

+1

Не могли бы вы быть более конкретными? – Akshay

+0

@ Akshay Я попытался;) Отредактировано. –

+1

Не могли бы вы показать нам свой код? – Christoffer

ответ

1

Это не должно быть трудно. Посмотрите на следующий пример:

<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> 

Давая кнопки представить в ячейках таблицы атрибут имя, это имя будет также присутствовать в качестве ключа на $_REQUEST. Идем дальше и var_dump $ _REQUEST, и вы увидите, что вы можете узнать в бэкэнд, нажав кнопку, проверив, какой ключ существует.

Обратите внимание, что POST/GET здесь абсолютно неактуальен, оба будут работать одинаково. И, очевидно, вы можете применить некоторые css к этим кнопкам, чтобы сделать их прозрачными и разместить их поверх ячеек таблицы, чтобы они не выглядели как кнопки, а просто «захватывали» щелчок пользователя.

Замечание последней стороны, вы уверены, что хотите отправить идентификатор пользователя в качестве параметра GET? Это было бы очень легко для кого-то с плохими намерениями манипулировать. Не отправляйте идентификатор вообще, но сохраняйте его в сеансе на сервере.

+0

Спасибо за ваш ответ. Да, отправка идентификатора пользователя, поскольку получение кажется небезопасным, но не является. В действии формы проверяются права входа в систему. Некоторым пользователям разрешено изменять расписания других пользователей. –

+0

Забыл сказать: uid не является идентификатором пользователя редактирования, а ID пользователя, чье расписание добавлено. –

+1

Да, я уже получил это от вашего обновления. Скорее всего, вы сохраните его (я полагаю, это доступно только для аутентифицированных пользователей). Просто хотел предупредить. То, что вы видите в Интернете ... – Pevara

Смежные вопросы