manolegal 12 Denunciar post Postado Agosto 13, 2015 Olá amigos. Já pesquisei muito, mas até agora não consegui resolver meu problema. Em meu formulário, caso o Cliente a ser selecionado não esteja cadastrado, criei um "atalho" para cadastrá-lo, direcionando o usuário para este formulário de cadastro de cliente. Ao finalizar o cadastro do cliente, o usuário retorna para o formulário inicial. Ao retornar para o formulário, gostaria de manter os dados digitados pelo usuário anteriormente. Estou tentando utilizar sessões, porém encontro dificuldades caso não haja POST (submit) antes do usuário acessar o formulário de cadastro do usuário. Abaixo partes do código: <?php session_start(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> <?php if ($_SERVER['REQUEST_METHOD'] == "POST"){ $_SESSION["meu_form"]["meu_campo"] = $_POST["meu_campo"]; } if((count($_POST) <= '0') OR (isset($msg_erro))){ ?> <table width="100%" border="0"> <form id="form" name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="return validaCampo(); return false;"> <tr> <td width="40%"><div align="right"><font color="#333333" face="Courier New, Courier, mono">Data Prevista Execução:</font><font color="#333333"></font></div></td> <td width="60%"><INPUT TYPE=TEXT id="meu_campo" NAME="meu_campo" SIZE=11 MAXLENGTH=10 value="<?php echo $_SESSION["meu_form"]["meu_campo"];?>" onkeypress="return handleEnter(this, event) && formatar_mascara(this, '##/##/####')" onKeyUp = "this.value=formateadata(this.value);" onfocus="mudacor(this,'yellow')" onblur="mudacor(this,'white')"><font color="#FF0000" size=2> (Somente números)</font></td> </tr> </form> </table> <?php } if (($erro==0) AND (!isset($msg_erro) AND (count($_POST) > '0'))){ // Grava no BD } Após submit, retorna o valor do campo na sessão, mas o problema é antes do submit. Como faço para manter este valor digitado? Gostaria de implementar em PHP, sem uso de ajax ou jquery. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 13, 2015 Basta verificar se a variável existe na session. Se não existir, exiba vazio: value="<?php echo isset($_SESSION["meu_form"]["meu_campo"]) ? $_SESSION["meu_form"]["meu_campo"] : ''; ?>" Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Agosto 13, 2015 Beraldo Não Funcionou. Digitei um valor no campo, a seguir acessei o outro formulário onde realizei o cadastro do cliente, e ao retornar ao formulário inicial, o campo estava em branco. O local em que estou definindo a sessão está correto (após "if ($_SERVER['REQUEST_METHOD'] == "POST"){")? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 14, 2015 Verifique se no meio desse processo não há algum script alterando o valor da session. Também dê um print_r em $_SESSION pra acompanhar os valores que estão sendo salvos Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Agosto 14, 2015 O print_r mostra o valor digitado no campo, mas somente após o submit do formulário. Preciso saber/guardar o valor digitado no campo antes do subimit, para que ao sair/retornar para o formulário, consiga manter o valor inicial do campo. Pelo que percebi, não há script alterando o valor da session. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 14, 2015 antes do submit? só se usar Ajax, então Mas é desnecessário. Este trecho já salva na session, logo após o submit: if ($_SERVER['REQUEST_METHOD'] == "POST"){ $_SESSION["meu_form"]["meu_campo"] = $_POST["meu_campo"]; } Se a session está ficando vazia mesmo assim, há algo errado na execução ou na sequência de scripts. Dentro desse if, dê um print_r em $_POST. O valor deve estar vindo vazio Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Agosto 14, 2015 Olá Beraldo. Após o submit está retornando correto. O que eu queria mesmo era salvar o valor digitado antes do submit, pois caso o usuário for para outro formulário e voltar, gostaria que os dados ficassem salvos nos campos. Gostaria de fazer isso em php. Sem possibilidades? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Agosto 14, 2015 Só com PHP, sem chance. Você precisa de JS pra identificar quando o usuário digita algo. Terá de salvar sempre que uma tecla for pressionada. Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Agosto 14, 2015 Beleza então. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites