onclick li отправить форму и опубликовать данные-идентификатор li

#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();  
});