Как ОПУБЛИКОВАТЬ идентификатор HTML-элемента

#php #html

#php #HTML

Вопрос:

Я настраиваю веб-обзор сотрудников и хочу обновлять / удалять сотрудников через веб-сайт.

Я извлекаю свои данные из своей базы данных и помещаю их в таблицу. Я хочу ОПУБЛИКОВАТЬ идентификатор HTML-элемента, чтобы получить контекст.

 while ($row = mysqli_fetch_array($query)) {
  echo
   "
   <tr>
    <td>{$row['Vorname']}</td>
    <td>{$row['Nachname']}</td>
    <td>{$row['farbe']}</td>
    <td>{$row['Name']}</td>
    <form action='Ma_bear.php' method='post'>
    <td>
    <input type='submit' name='test' value='Bearbeiten' id={$row['Mitarbeiterid']} />
    <input type='submit' name='test2' value='Löschen' id={$row['Mitarbeiterid']} />
    </td>
    </tr>n
    </form>";
}
 

И другой конец:

 <?php echo $_POST["test"]; ?>
 

С помощью этого кода выводится: «Bearbeiten», но я хочу, чтобы это был идентификатор элемента.

Есть ли способ сделать это в php? Или есть лучший способ сделать это?

Комментарии:

1. если вы ищете лучший способ сделать это, я предлагаю вам заглянуть в любой PHP ORM. Я рекомендую обезжиренный фреймворк, потому что он очень удобен для начинающих. вы должны иметь возможность очень быстро кодировать все приложение с помощью fat-free framework.

2. Используйте a button вместо input type=submit — это позволяет указать значение отправки, отличное от содержимого кнопки, которое оно показывает. developer.mozilla.org/en-US/docs/Web/HTML/Element/button

3. И это вложение form элемента в a tr на данный момент недопустимо. Форма должна либо обойти всю таблицу (в этом случае принятый в настоящее время ответ не будет работать), либо она должна содержаться в одной ячейке таблицы.

Ответ №1:

Это выводит Bearbeiten , потому что это значение этого ввода.

id Атрибут используется для целей интерфейса и не будет автоматически отправляться на серверную часть

Поскольку обе кнопки отправки должны публиковать одно и то же значение, вы можете использовать 3-й ввод, скрытый, для передачи этих данных.

В примере :

 <form action='Ma_bear.php' method='post'>
    <!--
                   |            |                 |
                   V            V                 V             -->
    <input type='hidden' name='id' value={$row['Mitarbeiterid']} />
    <input type='submit' name='test' value='Bearbeiten' />
    <input type='submit' name='test2' value='Löschen' />
</form>
 

В приведенном выше примере значение name входных данных равно id . Это, конечно, произвольное имя, вы можете назвать его так, как хотите.

И получить его с помощью $_POST['id']

Ответ №2:

Вы могли бы просто написать:

 <input type='hidden' name='Mitarbeiterid' value='{$row['Mitarbeiterid']'}/> 

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

Ответ №3:

Используйте не кнопки ввода, а кнопки кнопок

 <button name="edit" value="123">Edit</button>
<button name="delete" value="123">Delete</button>
 

Это либо отправит edit:123 , либо delete:123 как значения POST