#php #jquery
#php #jquery
Вопрос:
Я пытаюсь создать небольшую форму, которая отправляет data-id
из li
и передает значение onclick li
. Вот что я сделал до сих пор..
<form method="POST" action="/default/index" id="event-notify-form">
<div id="notification-event" style="overflow: hidden; width: auto; height: 400px">
<ul>
<li data-id="171" class="nav-message-body"></li>
<li data-id="168" class="nav-message-body"></li>
</ul>
</div>
</form>
мой jquery
$('#notification-event li').click(function() {
var eid=$(this).attr("data-id");
$('#event-notify-form').append(eid).submit();
});
идентификатор данных не является post, я попытался $_POST
отобразить пустой массив
Комментарии:
1. у вас должен быть скрытый элемент ввода с именем, затем установите его значение в
data-id
значение атрибута2. Это недопустимая разметка,
li
не может иметьdiv
в качестве родительской оболочки.
Ответ №1:
Создайте скрытый элемент ввода и задайте его значение как
<form method="POST" action="/default/index" id="event-notify-form">
<input type="hidden" name="myId" />
<div id="notification-event" style="overflow: hidden; width: auto; height: 400px">
<li data-id="171" class="nav-message-body"></li>
<li data-id="168" class="nav-message-body"></li>
</div>
</form>
затем
$('#notification-event li').click(function () {
var eid = $(this).attr("data-id");
var $frm = $('#event-notify-form');
//set the value of the hidden element
$frm.find('input[name="myId"]').val(eid);
//submit the form
$frm.submit();
});
на стороне сервера
$_POST('myId')
Ответ №2:
попробуйте изменить на:
$('#notification-event li').click(function() {
var eid=$(this).attr("data-id");
$('#event-notify-form').append("<input />", {
"type" : "hidden",
"value" : eid,
"name" : "some_name"
});
$('#event-notify-form').submit();
});