выываю сервер из формы таким образом Код (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 вообще лишено смысла ? т.е. лишено смысла указывать эти самые параметры после знака .вопроса в ссылке ?
Ну, теоретически может существовать софт, который будет «миксовать» параметры из формы и из адреса в action. А так можно использовать скрытые поля, восстановленные состояния видимых полей или Post-Redirect-Get.
@action1 чтобы переслать данные из формы, надо внутри формы поместить тег <input type="text" name="a" /> и заполнить его значением.
понял, что форма не подходит для моей идеи в данном случае. воспользовался тэгом button и его аргументом onclick="location.href='http://..."