html5 — доступ к атрибуту данных html 5 в переполнении стека

У меня есть форма, которая включает в себя

<input id="user-id" type="text" data-user-id="" name="message" placeholder="type and send..." class="form-control">

data-user-id Атрибут данных HTML5. Когда я отправляю форму, я хочу использовать значение атрибута data в классе php. Как получить доступ к этому атрибуту данных в php?

1

Решение

Ваш идентификатор пользователя должен находиться в отдельном скрытом поле, например:

<input type="hidden" name="user_id" value="123">
<input type="text" name="message" placeholder="type and send..." class="form-control">

Ваш message вход не должен иметь id из user-id и не должен нуждаться data-user-id совсем.

Атрибуты данных используются JavaScript. Скрытые входы передают значения в PHP, которые пользователь не должен видеть. Ни один из них не является действительно скрытым для пользователя.

4

Другие решения

Если вы публикуете эту форму непосредственно в сценарии PHP, вы не можете получить доступ к атрибутам данных. Если вы хотите сделать это, вам нужно будет прослушать отправку формы в Javascript, затем при отправке получить необходимые данные и опубликовать их в сценарии PHP для их обработки.

Вот пример кода (не проверен!) С использованием jQuery.

$('#form_name').on('submit',function(){

var user_id = $('#user-id').attr('data-user-id');

$.post('form_handle.php',{'user_id':user_id,[...],[...]});

});

куда [...] любые другие данные формы, которые будут отправлены обработчику. Затем обработчик может извлекать проведенные значения обычным способом, например, $_POST['user_id'],

1