За последние 24 часа нас посетили 37803 программиста и 7849 роботов. Сейчас ищут 1752 программиста ...

как правильно обратиться из html формы?

Тема в разделе "PHP для новичков", создана пользователем action1, 16 июл 2023.

  1. action1

    action1 Новичок

    С нами с:
    16 июл 2023
    Сообщения:
    6
    Симпатии:
    1
    выываю сервер из формы таким образом
    Код (Text):
    1. <form action="http://localhost/index.php?a=123" method="get">
    2. <input type="submit"  value="вперед" >
    3. </form>
    index.php
    Код (Text):
    1. php
    2. if(isset($_GET["a"])) {
    3.     echo $_GET["a"];
    4. }
    5. else echo "no data"
    6. ?>
    "
    отдает только "no data".

    если в поисковой строке браузера написать
    http://localhost/index.php?a=123
    то сервер отвечает корректно 123.

    что-то я не понимаю в формах- а что ?
     
  2. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    Различие методов.
    В POST данные отправляются в теле сообщения на указанный URI
    В GET данные присоединяет к указанному URI отделив от него "?". Если он там уже есть, то его и всё, что за ним просто проигнорирует
     
  3. action1

    action1 Новичок

    С нами с:
    16 июл 2023
    Сообщения:
    6
    Симпатии:
    1
    но в поисковой строке браузера ничего не игнорируется после знака вопроса,
    хотя это тоже get-запрос.
    --- Добавлено ---
    попробовал
    <a href="http://localhost/index.php?a=125">php</a>
    ссылка тоже отрабатывает правильно, возвращая 125.
    Почему же action= та же ссылка не работает?
     
  4. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    Наверное плохо объяснил.
    Вот есть у нас некое приложение 'index.php' в параметре action, которому мы отправляем что-то методом GET
    Браузер собирает данные из формы в виде массива атрибут=значение, преобразует в строку используя & и присоединяет к адресу приложения через ?
    Так сложилось, что ? может быть только один.
    Поэтому браузер выбирает из URI всё, что до ?
    И присоединяет к нему всё, что выбрал из формы. Даже если там ничего нет
    Другими словами используя GET в форме мы создаем конструктор ссылки
     
    #4 Drunkenmunky, 16 июл 2023
    Последнее редактирование: 16 июл 2023
    action1 нравится это.
  5. action1

    action1 Новичок

    С нами с:
    16 июл 2023
    Сообщения:
    6
    Симпатии:
    1
    получается, что прямая ссылка c явно указанными параметрами в action вообще лишено смысла ?
    т.е. лишено смысла указывать эти самые параметры после знака .вопроса в ссылке ?
     
  6. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.511
    Симпатии:
    284
    Да. Для метода GET
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Ну, теоретически может существовать софт, который будет «миксовать» параметры из формы и из адреса в action. А так можно использовать скрытые поля, восстановленные состояния видимых полей или Post-Redirect-Get.
     
  8. antoniii

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

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    @action1 чтобы переслать данные из формы, надо внутри формы поместить тег
    <input type="text" name="a" /> и заполнить его значением.
     
  9. action1

    action1 Новичок

    С нами с:
    16 июл 2023
    Сообщения:
    6
    Симпатии:
    1
    понял, что форма не подходит для моей идеи в данном случае.
    воспользовался тэгом button и его аргументом onclick="location.href='http://..."