За последние 24 часа нас посетили 21495 программистов и 1023 робота. Сейчас ищут 700 программистов ...

Определить форму с нажатой кнопкой

Тема в разделе "PHP для новичков", создана пользователем UrDmitriy, 15 окт 2020.

  1. UrDmitriy

    UrDmitriy Новичок

    С нами с:
    15 окт 2020
    Сообщения:
    2
    Симпатии:
    0
    Добрый день, прошу совета. Я совсем начинающий.
    Рисую страницу для управления несколькими устройствами по средствам БД. Страница динамическая, в ней помещается одна или несколько форм с набором одинаковых кнопок. Количество форм равно количеству устройств для конкретного аккаунта. У каждой формы есть уникальное name = id контроллера. Когда устройство одно - проблем нет, но если их несколько, как можно передать в пост кроме name кнопки еще и name формы? Спасибо)
     
  2. amberson

    amberson Активный пользователь

    С нами с:
    23 июл 2020
    Сообщения:
    62
    Симпатии:
    14
    На первый взгляд тут одинаковые формы избыточны если набор полей одинаков. Можно сделать выпадающий список в одной форме, отражающий конкретное устройство. В нём же и определять id устройства которое будет передаваться с постом. name кнопки и name формы тоже кажется избыточным, достаточно чего-то одного.
     
  3. UrDmitriy

    UrDmitriy Новичок

    С нами с:
    15 окт 2020
    Сообщения:
    2
    Симпатии:
    0
    Тут дело в визаулизации, все должно быть перед глазами. А вообще согласен, много лишнего, решил через подобное:
    <input type="hidden" name="hidden" value="something"></input>
     
  4. acso

    acso Активный пользователь

    С нами с:
    15 апр 2010
    Сообщения:
    150
    Симпатии:
    25
    Адрес:
    Одесса
    Касательно конкретно заданного вопроса, я бы получение имени кнопки и формы на jQuery сделал - просто и со вкусом:
    HTML:
    1. <form name="frm-1">
    2.   ...
    3.   <button name="btn-1">Кнопка 1</button>
    4. </form>
    5. <form name="frm-2">
    6.   ...
    7.   <button name="btn-2">Кнопка 1</button>
    8. </form>
    9. ...
    Код (Javascript):
    1. <script>
    2.   $(document).ready(function(){
    3.     $('form button').click(function(){
    4.       var
    5.         btn_name = $(this).attr('name'),
    6.         frm_name = $(this).parent().attr('name');
    7.       $.ajax({...})
    8.         .done(function(){...})
    9.         .fail(function(){...});
    10.     });
    11.   });
    12. </script>
    А с input type="hidden" какая-то ерунда у Вас. Во-первых, закрывающий тэг для инпутов не используется. Во-вторых, Вам предложили выпадающее меню использовать, а не скрытый инпут. Пример:
    HTML:
    1. <form id="frm-data">
    2.   <select>
    3.     <option value="1">Выбор 1</option>
    4.     <option value="2">Выбор 2</option>
    5.   </select>
    6.   <input type="submit" value="Отправить"/>
    7. </form>
    Код (Javascript):
    1. <script>
    2.   $(document).ready(function(){
    3.     $('#frm-data').on('submit', function(){
    4.       var
    5.         sel_id = $(this).find('select').val();
    6.       $.ajax(...);
    7.       return false;
    8.     });
    9.   });
    10. </script>