Ir para conteúdo
Fórum Script Brasil
  • 0

Evento Onchange Com Problema


Halfar

Pergunta

no meu formulario tenho uma caixa de texto, um botao submit e um menu de lista que contem o evento onchange para executar uma outra pagina quando este botao for clicado. Neste menu de lista, ao chamar a pagina eu passo algumas variaveis. Veja o codigo abaixo:

<input type="text" class = "caixa" name="TextPalavraChave" value="<? echo $xPalavraChave ?>" size="35">

<input type="submit" class = "botao" name="Submit" value="Enviar">

Ir para:

<select name="SelectPagina" class = caixa onChange="form1.action='listaementas.php?paginacao=ok&acesso_livre=<? echo $acesso_livre;?>&acesso_pago=<? echo $acesso_pago;?>'; form1.submit();">

O problema é o seguinte:

quando clico no botao SelectPagina, é disparado o evento onChange, a pagina listaementas.php é executada e passa o valor das variaveis corretamente. Bem, até aqui tudo bem.

Mas agora, ao informar algum valor na caixa de texto e pressionar o botao submit, a pagina a ser executada é outra pagina, que por sua vez executará posteriormente a pagina listaementas.php. Só que ao executar a pagina listaementas.php está passando as variaveis novamente como se eu tivesse clicado no botao SelectPagina.

Isto só ocorre se eu executar o botao SelectPagina primeiro e depois num outro momento, executar o botao submit.

Se eu executar o botao submit primeiro, aí não tem problema, executa a pchave.php normalmente, chama corretamente a pagina listaementas.php, mas sem passar as variaveis... assim está correto.

não sei se deu para entender...

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

vou explicar melhor. Na pagina selecao.php eu tenho o codigo abaixo:

<select name="SelectPagina" class = caixa onChange="form1.action='listaementas.php?paginacao=ok'; form1.submit();">
No codigo acima eu estou passando a variavel paginacao para a pagina listaementas.php. então quando a pagina listaementas.php for executada eu terei a variavel paginacao com seu valor ok

Na mesma pagina selecao.php eu tambem tenho uma caixa de texto com um botao submit. O que ocorre é o seguinte:

Eu clico no SelectPagina, então a pagina listamentas.php é executada e recupero o conteudo da variavel paginacao.

Agora, se eu digitar algo na caixa de texto, e clicar no botao submit, que tambem executará a pagina listaementas.php, a variavel paginacao será visível. Isto está errado. Explico porque:

Porque eu passei a variavel paginacao no objeto SelectPagina, quando ele é executado, note que existe o evento onChange neste objeto, que dispara uma acao executando a pagina listaementas.php, obviamente passando o valor da variavel paginacao.

Mas no botao submit eu não estou passando a variavel paginacao, ela somente é passada (ou pelo menos deveria ser somente passsada) quando o evento onChange é disparado no SelectPagina.

Resumindo:

quando clico no menu de lista SelectPagina tem variavel paginacao com valor ok.

quando clico no botao submit variavel paginacao não existe.(pelo menos não deveria existir)

acrescentando mais iformacoes a minha questao, creio que ficará mais claro ainda o entendimento, veja só, eu tenho no formulário definido o seguinte:

<form name="form1" method="post" action="pchave.php" onSubmit="return submit_page(this);">

<input type="submit" class = "botao" name="Submit" value="Enviar">

então quando o botao submit for clicado será executado a pagina pchave.php.

<select name="SelectPagina" class = caixa onChange="form1.action='listaementas.php?paginacao=ok'; form1.submit();">

então quando o SelectPagina for executado, será carregada a pagina listaementas.php, e consequentemente a variavel paginacao será passada com seu valor ok.

então veja só, se inicialmente eu disparar o botao submit, aí tudo bem, funciona corretamente, será executada a pagina pchave.php definida no action do formulario.

Em seguida clico no menu de lista, no SelectPagina e será executada a pagina listaementas.php, aqui tambem está correto.

Mas se agora, eu voltar a clicar novamente no botao submit ao invés de executar a pagina pchave.php, ele executa a pagina listamentas.php. parece que ficou gravado lá na memoria dele a ultima acao que eu havia feito, no caso eu havia pressionado no botao SelectPagina.

Editado por Halfar
Link para o comentário
Compartilhar em outros sites

  • 0
Mas se agora, eu voltar a clicar novamente no botao submit ao invés de executar a pagina pchave.php, ele executa a pagina listamentas.php. parece que ficou gravado lá na memoria dele a ultima acao que eu havia feito, no caso eu havia pressionado no botao SelectPagina.

E fica mesmo. você tá usando akela META TAG que apaga a cache?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...