Manual do PHP
Anterior |  | Próxima

# Capítulo 37. Lidando com XForms

XForms define uma mudança com relação a formulários tradicionais que permite que sejam usados em uma variedade mais ampla de plataformas e browsers ou até mesmo em mídias não tradicionais tais como documentos PDF.

A primeira diferença chave nos XForms é como o formulário é enviado ao cliente. XForms para autores de HTML contem uma descrição detalhada de como criar XForms. Para o propósito deste tutorial nós veremos apenas exemplos simples.

Exemplo 37-1. Um formulário XForms simples de busca
    <h:html xmlns:h="http://www.w3.org/1999/xhtml"
            xmlns="http://www.w3.org/2002/xforms">
    <h:head>
     <h:title>Search</h:title>
     <model>
      <submission action="http://example.com/search"
                  method="post" id="s"/>
     </model>
    </h:head>
    <h:body>
     <h:p>
      <input ref="q"><label>Find</label></input>
      <submit submission="s"><label>Go</label></submit>
     </h:p>
    </h:body>
    </h:html>

O formulário acima mostra uma caixa de entrada de texto (chamada `q`), e um botão de submit (envio). Quando o botão de submit é clicado, o formulário será enviado para a página referenciada por `action`.

Aqui é onde começa a parecer diferente do ponto de vista da sua aplicação web. Em um formulário HTML normal, a informação seria enviada como `application/x-www-form-urlencoded`, no mundo dos XForms, porém, essa informação é enviada no formato XML.

Se você está escolhendo trabalhar com XForms então você, provavelmente, quer aquela informação como XML. Nesse caso, procure em `$HTTP_RAW_POST_DATA`, onde você achará o documento XML gerado pelo navegador e que você pode passar para o seu engine XSLT ou parser favorito.

Se você não estiver interessado em formatação e só quer que sua informação seja carregada na variável tradicional `$_POST`, você pode encarregar o navegador do cliente para enviar como um `application/x-www-form-urlencoded` mudando o atributo `method` para urlencoded-post.

Exemplo 37-2. Usando um XForm para popular o `$_POST`
    <h:html xmlns:h="http://www.w3.org/1999/xhtml"
            xmlns="http://www.w3.org/2002/xforms">
    <h:head>
     <h:title>Search</h:title>
     <model>
      <submission action="http://example.com/search"
                  method="urlencoded-post" id="s"/>
     </model>
    </h:head>
    <h:body>
     <h:p>
      <input ref="q"><label>Find</label></input>
      <submit submission="s"><label>Go</label></submit>
     </h:p>
    </h:body>
    </h:html>

> Nota: Até o término dessa edição, muitos navegadores não suportam XForms. Verifique a versão do seu navegador se os exemplos acima falharem.

Anterior | Principal | Próxima
Sessões | Acima | Gerenciar o upload de arquivos