WML - Soumettre les données au serveur

Plusieurs fois, vous souhaiterez que vos utilisateurs soumettent des données à votre serveur. Semblable au formulaire HTML, WML fournit également un mécanisme pour soumettre les données utilisateur au serveur Web.

Pour soumettre des données au serveur en WML, vous avez besoin des balises <go> ... </go> ainsi que des balises <postfield />. La balise <postfield /> doit être incluse dans la paire de balises <go> ... </go>.

Pour soumettre des données à un serveur, nous collectons toutes les variables WML définies et utilisons les éléments <postfield> pour les envoyer au serveur. Les éléments <go> ... </go> sont utilisés pour définir la méthode de publication sur POST ou GET et pour spécifier un script côté serveur pour gérer les données téléchargées.

Dans les chapitres précédents, nous avons expliqué différentes manières de saisir les contributions des utilisateurs. Ces éléments d'entrée définissent les variables WML sur les valeurs entrées. Nous savons également comment prendre des valeurs à partir de variables WML. Alors maintenant, l'exemple suivant montre comment soumettre trois champs nom, âge et sexe au serveur.

<?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>

Lorsque vous téléchargez le code ci-dessus sur votre appareil WAP, il vous donnera la possibilité de saisir trois champs nom, âge et sexe et un lien Soumettre les données . Vous entrerez trois champs, puis vous sélectionnerez enfin le lien Soumettre les données pour envoyer les données saisies au serveur.

L' attribut method de la balise <go> spécifie la méthode HTTP à utiliser pour envoyer les données du formulaire.

Si la méthode HTTP POST est utilisée, les données du formulaire à envoyer seront placées dans le corps du message de la requête. Si la méthode HTTP GET est utilisée, les données du formulaire à envoyer seront ajoutées à l'URL. Étant donné qu'une URL ne peut contenir qu'un nombre limité de caractères, la méthode GET présente l'inconvénient de limiter la taille des données à envoyer. Si les données utilisateur contiennent des caractères non ASCII, vous devez utiliser la méthode POST pour éviter les problèmes de codage.

Il existe une différence majeure entre HTML et WML. En HTML, l'attribut name des balises <input> et <select> est utilisé pour spécifier le nom du paramètre à envoyer, tandis qu'en WML l'attribut name de la balise <postfield> est utilisé pour faire la même chose. En WML, l'attribut name de <input> et <select> est utilisé pour spécifier le nom de la variable pour stocker les données du formulaire.

Le chapitre suivant vous apprendra comment gérer les données téléchargées à la fin du serveur.