Много раз вы хотите, чтобы ваши пользователи отправляли некоторые данные на ваш сервер. Аналогично HTML Form WML также предоставляет механизм для отправки пользовательских данных на веб-сервер.
Чтобы отправить данные на сервер в формате WML, вам нужны теги <go> … </ go> и теги <postfield />. Тег <postfield /> должен быть заключен в пару тегов <go> … </ go>.
Чтобы отправить данные на сервер, мы собираем все установленные переменные WML и используем элементы <postfield> для отправки их на сервер. Элементы <go> … </ go> используются для установки метода публикации на POST или GET и для указания сценария на стороне сервера для обработки выгруженных данных.
В предыдущих главах мы объяснили различные способы получения информации от пользователей. Эти входные элементы устанавливают переменные WML для введенных значений. Мы также знаем, как получить значения из переменных WML. Итак, следующий пример показывает, как отправить на сервер три поля: имя, возраст и пол .
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd"> <wml> <card id="card1" title="WML Form"> <p> Name: <input name="name" size="12"/> Sex : <select name="sex"> <option value="male">Male</option> <option value="female">Female</option> </select> Age : <input name="age" size="12" format="*N"/> <anchor> <go method="get" href="process.php"> <postfield name="name" value="$(name)"/> <postfield name="age" value="$(age)"/> <postfield name="sex" value="$(sex)"/> </go> Submit Data </anchor> </p> </card> </wml>
Когда вы загрузите указанный выше код на свое WAP-устройство, он предоставит вам возможность ввести три поля: имя, возраст и пол и одну ссылку Отправить данные . Вы введете три поля и, наконец, выберете ссылку « Отправить данные», чтобы отправить введенные данные на сервер.
Атрибут method тега <go> указывает, какой метод HTTP следует использовать для отправки данных формы.
Если используется метод HTTP POST, данные формы для отправки будут помещены в тело сообщения запроса. Если используется метод HTTP GET, данные формы для отправки будут добавлены к URL-адресу. Поскольку URL-адрес может содержать только ограниченное количество символов, недостатком метода GET является ограничение размера отправляемых данных. Если пользовательские данные содержат не-ASCII-символы, вы должны использовать метод POST, чтобы избежать проблем кодирования.
Между HTML и WML есть одно важное отличие. В HTML атрибут name из тегов <input> и <select> используется для указания имени отправляемого параметра, а в WML атрибут name из тега <postfield> используется для того же. В WML атрибут name <input> и <select> используется для указания имени переменной для хранения данных формы.
Следующая глава научит вас, как обрабатывать загруженные данные на стороне сервера.