Ir para conteúdo

POWERED BY:

Arquivado

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

jacianematos

Javascript+Php

Recommended Posts

Preciso chamar a mesma página com o form e incrementar uma variavel, mas não consigo.

Não domino o javascript.

Tentei fazer da seguinte forma:

 

Lendo o banco...

<? //LER BANCO PRIMEIRA VEZ if (isset($questao)==0)  {     $questao=1;     include("lerbanco.php");   }else   {    include("lerbanco.php");   } ?>

Testando a opção escolhida e incrementando a variável

<script language="JavaScript">function primeira_questao()        {	$questao = 1;	document.form_simulado.method="post";              document.form_simulado.action='simulado.php?questao';              document.form_simulado.submit();        }function anterior_questao()        {              questao-=1;              document.form_simulado.method="post";              document.form_simulado.action='simulado.php?questao';             document.form_simulado.submit();       }function proxima_questao()        {            questao+=1;            document.form_simulado.action="simulado.php?questao";            document.form_simulado.submit();        }function ultima_questao()        {            questao = 40;            document.form_simulado.method="post";            document.form_simulado.action='simulado.php?questao';             document.form_simulado.submit();        }function terminar_prova()        {           document.form_simulado.method="post";            document.form_simulado.action='simulado_fim.php';            document.form_simulado.submit();        }   	 </script>

Formulário...

<form name="form_simulado" method="post" action="">     <table>             <tr><td>PERGUNTA: <? echo ($dsquestao[$questao]); ?</td></tr>             <tr><td><input type="radio" name="op" value="A"> A)<? echo ($opc_a[$questao]);?></td></tr>             <tr><td><input type="radio" name="op" value="B"> B)<? echo ($opc_b[$questao]);?> </td></tr>             <tr><td><input type="radio" name="op" value="C">C)<? echo ($opc_c[$questao]);?> </td></tr>            <tr><td><input type="radio" name="op" value="D"> D)<? echo ($opc_d[$questao]);?> </td></tr> <tr><td><img name="Primeira Questao" src="../imagens/bot_prim_a.gif" onclick="javascript:primeira_questao();return false;"></td>      <td><img name="Questao anterior"  src="../imagens/bot_ant_a.gif"  onclick="javascript:anterior_questao();return false;"></td>      <td><img name="Proxima Questao" src="../imagens/bot_prox_a.gif" onclick="javascript:proxima_questao();return false;"></td>      <td><img name="Ultima questao"  src="../imagens/bot_ult_a.gif" onclick="javascript:ultima_questao();return false;"></td>      <td><img name="Terminar Prova" src="../imagens/bot_fim_a.gif" onclick="javascript:termina_prova();return false;"></td> <input type="hidden" name="questao" value=<? echo $questao; ?> >  </form>

 

Entao... o que é que está errado?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calvin, pelo que entendi no exemplo que mostrou, ele resolveu o problema dentro do javascript.A questão é a seguinte: Tenho um script (simulado.php) que faz a leitura de um bd de questões e exibe a primeira em um form com suas respectivas alternativas (A B C D E). Este form é controlado por botões (prox questao, quest. anterior, ...).Quando um dos botões é clicado então o javascript deve incrementar a variável questão de acordo a opção (ex: se clicar em prox questão então questao será questao+=1 ), daí chamar a mesma pagina com a nova questão.Deu para entender?É simples, mas não consigo passar o valor da variável questão!Poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você consegue incrementar e decrementar mas não consegue passar o novo valor (incrementado/decrementado) quando troca de questão ??se for isso basta criar um campo oculto no seu

daí antes de submeter faça:

document.form_simulado.questao = questao;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, coloquei o codigo no meu script como você ensinou:

 

no javascript....

function proxima_questao()        {         document.form_simulado.questao=questao+1;         document.form_simulado.method="post";         document.form_simulado.action="simulado.php?";         document.form_simulado.submit();        }

no form já estava assim...

<input type="hidden" name="questao" value=<? echo $questao; ?> >

 

Mas agora acusa que esta propriedade ou método não tem suporte do objeto

document.form_simulado.questao=questao+1;
Andei lendo e vi numa apostila que o document.form é uma propriedade apenas de leitura e não pode ser alterada. Será por isto que não consigo mudar o valor da variável??? Qual a saída?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa!!!!! Comecei a ver luz no fim do túnel....

 

Meu caro estamos quase lá....

 

Olha, está dando tudo certo quando o valor é fixo:

 

document.form_simulado.questao=1;        
ou

 

document.form_simulado.questao=40;

o problema é quando preciso incrementar...... não incrementa

document.form_simulado.questao=document.form_simulado.questao+1;

O valor da variável questao fica = [object]1

 

O que é isso????? Será impossível incrementar/decrementar???

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele não incrementa porque está enxergando como se fosse uma stringé melhor fazer a operação matemática separado:questao++; // incrementadocument.form_simulado.questao.value = questao; // atribui o valorpra decrementar:questao--; ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é o problema, dá erro de objeto esperado (seja lá o que isto quer dizer).Uma variável vinda do form pode ser incrementada desta forma no javascript?questao++ ou questao= questao+1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá certo:

function primeira_questao()        {          document.form_simulado.questao.value=1;          document.form_simulado.method="post";          document.form_simulado.action='simulado.php';          document.form_simulado.submit();        }function ultima_questao()        {         document.form_simulado.questao.value = 40;         document.form_simulado.method="post";         document.form_simulado.action='simulado.php';         document.form_simulado.submit();        }function terminar_prova()     {         document.form_simulado.method="post";         document.form_simulado.action='simulado_fim.php';         document.form_simulado.submit();        }

....dá erro (objeto esperado) na linha do incremento/decremento:

function anterior_questao()        {             questao--;            document.form_simulado.questao.value=questao;             document.form_simulado.method="post";            document.form_simulado.action='simulado.php';            document.form_simulado.submit();       }function proxima_questao()       {            questao++;            document.form_simulado.questao.value=questao;            document.form_simulado.method="post";            document.form_simulado.action="simulado.php";            document.form_simulado.submit();        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe a demora, tava cuns trabalhostente com isso:

questao = 1;maior = 40;function primeira_questao()      {        document.form_simulado.questao.value=questao;        document.form_simulado.method="post";        document.form_simulado.action='simulado.php';        document.form_simulado.submit();      }function ultima_questao()      {        document.form_simulado.questao.value = maior;        document.form_simulado.method="post";        document.form_simulado.action='simulado.php';        document.form_simulado.submit();      }function terminar_prova()    {        document.form_simulado.method="post";        document.form_simulado.action='simulado_fim.php';        document.form_simulado.submit();      }function anterior_questao()      {          if(questao>1){          questao--;          }          document.form_simulado.questao.value=questao;           document.form_simulado.method="post";          document.form_simulado.action='simulado.php';          document.form_simulado.submit();      }function proxima_questao()      {          if(questao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ótimo! Conseguimos!!!!Hinom, sou só agradecimentos à você.Deu certinho. Apenas acrescentei uma linha para pegar o valor atual da questão (form) e daí incrementar ou decrementar.

questao=document.form_simulado.questao.value;    if(questao<maior){  questao++;}....

Está funcionando perfeitamente. Agora tentarei armazenar as respostas das questões em cookie. Ai é uma outra história....... para um outro tópico de forum, quem sabe. Tomara que não precise, mas se precisar contarei com seus conhecimentos.[]´sJaci

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.