Может кто-нибудь, пожалуйста, объясните мне это?
У меня есть следующий код:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="text" id="testField" /> <input type="submit"> </form> <br /><br /> <pre> <?php print_r($_POST); ?> </pre>
Это отлично работает на моей главной dev-панели и на сервере. Тем не менее, мне приходится работать удаленно на моем ноутбуке в данный момент. Я установил тот же самый WAMPServer 2.1a, как и в моей настройке dev, а массив $ _POST пуст.
Если я объявлю поле, как:
<input type="text" name="testField" />
Я получаю ожидаемый результат.
Из спецификации HTML 4.01, §17.2, «Элементы управления» :
Управляющее имя элемента управления определяется его атрибутом name.
…
Когда форма представляется для обработки, некоторые элементы управления имеют свое имя в паре с их текущим значением, и эти пары передаются с формой.
«id» не имеет значения.
Стандартное поведение. Всегда используйте name
в форме.
Вы никогда не сможете передать значение на другую страницу, используя идентификатор, единственный атрибут, который php может читать через метод POST, использует имя объекта.