Ir para conteúdo

Arquivado

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

Luis Henrique Abeno

Manter parametros após refresh

Recommended Posts

Pessoal, boa tarde.

 

Estou com um probleminha quanto a utilização de um formulário.

O que acontece é o seguinte, quanto eu faço um filtro no formulário e envio, os dados são carregados na mesma página abaixo do formulário, até ai tudo bem, o problema é que os filtros voltam para os valores padrão, eu gostaria de manter o filtro que havia sido feito. Deu para entender? =)

 

É mais ou menos assim:

Faço o filtro que eu quero....

 

Nome do Carro: Fiat Uno

Fabricação: de 01/02/1998 até 31/12/2013

 

Depois que envio o formulário, o resultado com os parametros que passei retornam na mesma página mas os valores dos campos voltam para o padrão e ai fica assim:

 

Nome do Carro: < em branco >

Fabricação: de <em branco> até <em branco>

 

Esper que vocês possam me ajudar =)

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luis, boa tarde

 

Se puder passar o código, talvez fique mais fácil de exemplificar. Acredito que vc esteja passando via POST, logo, vc precisaria preencher os valores dos inputs (atributo value) com o POST que vc passou.

 

Algo como

 

 

<input type="text" name="carro" value="<?php echo $_POST["carro"];?> /> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao iniciar o codigo, insira

 

 

 

session_start();

 

 

 

e em seguida atribua os valores, por exemplo:

 

 

 

$_SESSION['carro'] = $_POST['carro'];

 

 

E no value do input coloque as variaveis.

 

 

 

<input type="text" name="carro" value="<?php echo $_SESSION['carro']; ?>" />

Se bem, que acredito que nem precisa de session, um $_POST já resolve

 

 


 

<input type="text" name="carro" value="<?php echo $_POST['carro']; ?>" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda =)

 

Certo, o código é esse:

 

Aqui é a função onde gero o menu dropdown com as contas contabeis e onde eu quero que o parametro permaneça o que o usuario selecionou após clicar no botão para enviar o formulário.
function dropDownContaContabil(){
$sql = mysql_query ("Select COD_CONTA_CONTABIL,DSC_CONTA_CONTABIL,FLG_DEBITO_CREDITO FROM CAD_CONTA_CONTABIL"); 
echo "<option value = \"'(TODOS)'\" > (TODOS) </option>"; 
while($row = mysql_fetch_array($sql)) { 
echo ("<option value=$row[COD_CONTA_CONTABIL] name = 'opt' >$row[DSC_CONTA_CONTABIL]</option>"); 
} 
} 

E aqui o HTML da forma como ele é invocado... 

<select name="contacontabil" id="contacontabil"> 
<?php $list = dropDownContaContabil(); 
echo $list;
?> 
</select>

 

 

O meu form está assim...

<form method = "post" action = "">
.
.
.

<?php
if(isset($_POST) && !empty($_POST['contacontabil'])){
?>
<div id = "conteudo">
<?php 
require_once('@consulta_lancamento_contabil.php');
?>
</div>
<?php
}
?>
<div id = "botoes">
<input type = "reset" name = "novo" value = "Novo" class = "novo">	
<input type = "submit" name = "consulta" value = "Consultar"> 
<input type = "button" value = "Voltar" onclick = "javascript: location.href = 'home.php';" />
</div>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho então que se você mudar sua function para analisar o POST, já é o suficiente

 

Algo como:

 

 


function dropDownContaContabil(){ 
   $sql = mysql_query ("Select COD_CONTA_CONTABIL,DSC_CONTA_CONTABIL,FLG_DEBITO_CREDITO FROM CAD_CONTA_CONTABIL");
   echo "<option value = \"'(TODOS)'\" > (TODOS) </option>";
   while($row = mysql_fetch_array($sql)){ 
      if($_POST['contacontabil']==$row[COD_CONTA_CONTABIL]) $selected=" selected=\"selected\" ";
      else $selected="";
      echo ("<option value=$row[COD_CONTA_CONTABIL] name = 'opt' $selected >$row[DSC_CONTA_CONTABIL]</option>");

   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já que você irá realizar uma requisição, não pensou em utilizar ajax para o retorno? Te pouparia esse detalhe de perder os dados e seria mais econômico, em questões de banda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já que você irá realizar uma requisição, não pensou em utilizar ajax para o retorno? Te pouparia esse detalhe de perder os dados e seria mais econômico, em questões de banda.

Hum, boa idéia =)

 

Mas eu não tenho muito conhecimento em Ajax =/

Se puder me dar o caminho das pedras eu posso ir atrás =)

 

Vlw pela dica,

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://api.jquery.com/load/

http://api.jquery.com/jQuery.ajax/

 

É bem fácil de utilizar:

http://www.webmaster.pt/requisicoes-ajax-jquery-2216.html

 

Load é a versão mais prática, deve resolver seu problema. Consulta uma url e retorna o valor direto para um elemento html.

 

A função ajax é mais completa, pode fazer muita coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://api.jquery.com/load/

http://api.jquery.com/jQuery.ajax/

 

É bem fácil de utilizar:

http://www.webmaster.pt/requisicoes-ajax-jquery-2216.html

 

Load é a versão mais prática, deve resolver seu problema. Consulta uma url e retorna o valor direto para um elemento html.

 

A função ajax é mais completa, pode fazer muita coisa.

 

Obrigado pela força Gabriel, vou tentar dar uma olhada nos links hoje e retorno os resultados.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza, consegui =)

 

Removi o formulario e inclui o script:

<script type = "text/javascript">
    $(function(){
        $('#consulta').click(function(){
            $.ajax({
                type: 'post',
                data: {contacontabil: $("select[name='contacontabil']").val(),subconta: $("select[name='subconta']").val(),cc: $("select[name='cc']").val(),dtinicial: $("input[name='dtinicial']").val(),dtfim: $("input[name='dtfim']").val()}, 
                url:'@consulta_lancamento_contabil.php',
                success: function(retorno){
                    $('#conteudo').html(retorno);  
                }
            })
        })
    })
</script>

 

Agora estou conseguindo fazer a consulta, exibir os dados na div da mesma página e manter os parâmetros da busca =)

 

Obrigado a todos pela ajuda xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, boa tarde!

 

Como eu faço para manter a Sessão do "cod_genero" que será passada na paginação, no caso abaixo?

 

<select name="genero" class="select">
<option value="" >Selecione Todos</option>
<?php

$recebe= $conecta->seleciona("Select cli.cod_genero,gen.descricao from genero gen inner join clientes cli on gen.cod_genero=cli.cod_genero group by gen.descricao");

while($lista= mysql_fetch_array($recebe)){ ?>

<option value="<?php echo($lista["cod_genero"]); ?> "><?php echo($lista["descricao"]) ;?></option>

<?php }?>

</select>

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.