Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ahsc

Alert - voltar à página anterior

Recommended Posts

Olá a todos. Tenho uma dúvida que julgo ser simples para quem desenvolve em javascript. Seguinte: Tô montando um sisteminha em PHP e nele há uma parte do código que consiste em validar arquivos. A mensagem de erro que é apresentada ao usuário é através do comando alert do js. E com um location href para a página especificada.

Entretanto, quando eu volto para a página onde o usuário inseriu a informação errada, todos os dados são perdidos de forma que o usuário tem que digitar tudo novamente.

 

Então, como fazer para que no alert ao clicar em ok o usuário volte para a página anterior com os dados preenchidos, no tipo: <a href="java script:history.go(-1);">enviar outro arquivo</a>

 

O código que uso é o seguinte:

 

CODE
<?php if(($dataExpira <= $dataLancamento))

{

echo "<script>alert('Erro: Arquivo vencido. Verifique a data do documento ou o tempo de arquivamento.');";

echo "location.href='../lancaDocs.php'</script>";

exit;

}?>

 

Agradeço a quem puder me dar uma forcinha nisto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho mais fácil, você fazer a persistência utilizando PHP do que javascript, existem váaaaarias formas de fazer isso, muitas delas "verdadeiras gambiras" ainda mais para quem programa em PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples... Dentro do seu script, monte a url da página dinamicamente passando os parâmetros dos dados já inseridos pelo usuário. Por exemplo:

 

CODE

<?php if(($dataExpira <= $dataLancamento)){

 

echo "<script>

url = '../lancaDocs.php?';

//Percorre os elementos do formulário capturando os valores já digitados pelo usuário

for (i=0; document.forms['nome_do_form'].length; i++) {

url = url + document.forms['nome_do_form'].elements.name + "=" + document.forms['nome_do_form'].elements.value + "&";

}

//Retira o último & desnecessário à url

url = url.substr(0,url.length-1);

alert('Erro: Arquivo vencido. Verifique a data do documento ou o tempo de arquivamento.');"; echo "location.href=url;</script>"; exit;

}

?>

Na página lancaDocs.php, será necessário ainda verificar se os parâmetros foram criados para você lançá-los nos elementos específicos... Uma idéia, é inserir na propriedade value de cada elemento o seguinte script php:

 

CODE

value='<?= if (isset($_GET['parametro'])) $_GET['parametro']?>'

Lembrando que caso o elemento seja um select, a informação deverá ser setada de forma diferente da descrita acima.

 

É mais ou menos por aí... Acho que ainda terá de fazer algumas adaptações no código acima pra funcionar no seu sistema, como por exemplo verificar dentro do "for" se o elemento foi preenchido para capturar o parâmetro apenas dos elementos já informados pelo usuário.

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade as persistências já estão criadas. Só acho mais fácil fazer um alert para o usuário informando do erro, ao invés de criar uma página de erro. Só que com o alert eu perco os dados digitados anteriormente pelo usuário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A persistência que me referi foi a que devia ser feita entre postbacks, use a solução da Michelly, creio que vai funcionar para você.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Intendi. Fiz os testes com o código da michelli mais não funcionou. O engraçado e que não retornou erro. A tela ficou em branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que escrvi com pressa e te respondi apenas pra você ter uma idéia de como se faz! Com certeza deve ter algum erro de sintaxe... Estava verificando e na linha

url = url + document.forms['nome_do_form'].elements[i].name + "=" + document.forms['nome_do_form'].elements[i].value + "&";
por exemplo, eu acabei deixando aspas duplas para a string o que ocasiona erro uma vez que você escreve javascript com php.

 

Dê uma revisada na sintaxe pois te deixei apenas a idéia e o programador é você!

 

Grande abraço! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.