За последние 24 часа нас посетил 17541 программист и 1720 роботов. Сейчас ищут 1649 программистов ...

Обработка button

Тема в разделе "PHP для новичков", создана пользователем ramko, 7 сен 2013.

  1. ramko

    ramko Новичок

    С нами с:
    11 авг 2013
    Сообщения:
    10
    Симпатии:
    0
    Коллеги добрый день.

    Прошу помочь разобраться... видимо туплю, но не могу найти ошибку.

    Код (Text):
    1.  
    2. <?php
    3.  
    4. if (isset($_POST['button1']))   {
    5.     echo "<p>Нажата кнопка 5</p>";
    6.     }
    7. elseif  (isset($_POST['button2']))  {
    8.     echo "<p>Нажата кнопка 5 *value</p>";
    9.     }
    10. elseif  ($_POST['button1'] == 'button4')    {
    11.     echo "<p>Value = button5</p>";
    12. }
    13. elseif  ($POST['button2'] == 'Кнопка 4') {
    14.     echo "<p>Кнопка 4</p>";
    15. }
    16. else    {
    17.     echo "<p>Нажмите одну из кнопок!!!</p>";
    18. }
    19. ?>
    20.  
    21. <form action ="button_test.php" method="POST">
    22. <button type="button" name="button1" value="button5">Кнопка 5</button>
    23. <br>
    24. <button type="button" name="button2" value="button4">Кнопка 4</button>
    25. </form>
    при нажатии на кнопки никакой реакции. А хочется :)
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    ничего не отправляет на сервер, вот и вся ошибка. А submit отправляют.

    Чтобы несколько сабмитов красиво разрулить, нужно, чтобы у них всех было одинаковое имя, но разные value. Тогда нажатие одного сабмита будет отличаться от другого, и их можно будет обработать в switch.
     
  3. ramko

    ramko Новичок

    С нами с:
    11 авг 2013
    Сообщения:
    10
    Симпатии:
    0
    я из-за чего поставил button.. у меня была проблема что клавишой enter нажимались не те кнопки которые нужны...
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Ну тогда два пути:
    1) Через JS ловить нажатие ENTER и подавлять;
    2) Оставить button, но по нажатию на них дергать JS, инициирующий отправку формы.

    Второе разумнее.
     
  5. ramko

    ramko Новичок

    С нами с:
    11 авг 2013
    Сообщения:
    10
    Симпатии:
    0
    Переделал код, результат тот же, никакой реакции

    Код (Text):
    1.  
    2. <?php
    3. if ($_POST['button1'] == 'button5') {
    4.     echo "<p>Нажата кнопка 5</p>";
    5.     }
    6. else    {
    7.     echo "<p>Нажмите одну из кнопок!!!</p>";
    8. }
    9. ?>
    10.  
    11. <form action="button_test.php" method="POST">
    12. <button type="submit" name="button1" value="button5">Кнопка 5</button>
    13. <br>
    14. <button type="submit" name="button2" value="button4">Кнопка 4</button>
    15. </form>
    Добавлено спустя 6 минут 26 секунд:
    нет обманул, второй код работает :)
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    странно, а у меня все работает. Обновите страничку с очисткой кэша браузера :)