выываю сервер из формы таким образом
Код (Text):
<form action=»http://localhost/index.php?a=123″ method=»get»> <input type=»submit» value=»вперед» > </form>index.php
Код (Text):
php if(isset($_GET[«a»])) { echo $_GET[«a»]; } else echo «no data» ?>«
отдает только «no data».если в поисковой строке браузера написать
http://localhost/index.php?a=123
то сервер отвечает корректно 123.что-то я не понимаю в формах- а что ?
Различие методов.
В POST данные отправляются в теле сообщения на указанный URI
В GET данные присоединяет к указанному URI отделив от него «?». Если он там уже есть, то его и всё, что за ним просто проигнорирует
но в поисковой строке браузера ничего не игнорируется после знака вопроса,
хотя это тоже get-запрос.
— Добавлено —
попробовал
<a href=»http://localhost/index.php?a=125«>php</a>
ссылка тоже отрабатывает правильно, возвращая 125.
Почему же action= та же ссылка не работает?
Наверное плохо объяснил.
Вот есть у нас некое приложение ‘index.php’ в параметре action, которому мы отправляем что-то методом GET
Браузер собирает данные из формы в виде массива атрибут=значение, преобразует в строку используя & и присоединяет к адресу приложения через ?
Так сложилось, что ? может быть только один.
Поэтому браузер выбирает из URI всё, что до ?
И присоединяет к нему всё, что выбрал из формы. Даже если там ничего нет
Другими словами используя GET в форме мы создаем конструктор ссылки
получается, что прямая ссылка c явно указанными параметрами в action вообще лишено смысла ?
т.е. лишено смысла указывать эти самые параметры после знака .вопроса в ссылке ?
Да. Для метода GET
Ну, теоретически может существовать софт, который будет «миксовать» параметры из формы и из адреса в action. А так можно использовать скрытые поля, восстановленные состояния видимых полей или Post-Redirect-Get.
@action1 чтобы переслать данные из формы, надо внутри формы поместить тег
<input type=»text» name=»a» /> и заполнить его значением.
понял, что форма не подходит для моей идеи в данном случае.
воспользовался тэгом button и его аргументом onclick=»location.href=’http://…»