downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Gerenciar o upload de arquivos> <Sessões
Last updated: Fri, 13 Nov 2009

view this page in

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 #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 #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.



Gerenciar o upload de arquivos> <Sessões
Last updated: Fri, 13 Nov 2009
 
add a note add a note User Contributed Notes
Lidando com XForms
Darkener Daemon EX
13-Feb-2006 05:21
"php://stdin" doesn't exist in my PHP version. I use the following code block instead :
<?php
if (!isset($HTTP_RAW_POST_DATA))
   
$HTTP_RAW_POST_DATA = file_get_contents("php://input");
?>
OrionI
07-Jul-2005 06:33
FireFox has an XForms plugin that works with the latest nightly builds. Check out http://www.mozilla.org/projects/xforms/ for more info. For IE support, there's an ActiveX control from Novell (http://developer.novell.com/xforms/) and one from x-port.net (http://www.formsplayer.com/).

There's also a JavaScript-based one coming out called FormFaces which looks very promising, especially since there are no plugins required and it works in IE, FF, and Opera: http://www.formfaces.com/
lphuberdeau at phpquebec dot org
21-Aug-2004 04:55
Since HTTP_RAW_POST_DATA requires a configuration to be generated and is not enabled as a default value, you will probably have to use the PHP STDIN stream to get the raw data. It's probably better to use this method as the raw data will not be generated every time, even when not needed.

<?php
$fp
= fopen( "php://stdin", "r" );
$data = '';
while( !
feof( $fp ) )
   
$data .= fgets( $fp );
fclose( $fp );
?>

Gerenciar o upload de arquivos> <Sessões
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites