Ir para conteúdo

POWERED BY:

Arquivado

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

Tigger

Prova online com 40 questoes...

Recommended Posts

Mais como essa comparacao sera feita.....com esse codigo estamos apenas selecionando um campo referente ao banco de dados...onde ele apenas ira selecionar..um campo com um total de 40 campos com os respectivos valores....como fzer isso entao?!?!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu usaria alguns passos

 

campos com nomes padronizados

 

digamos que seja tres opçoes para cadas pergunta

 

e que você esteja usando radios

 

então cada radio você coloca pergunta e alternativa no nome

 

ex: P01a, P01b, P01c, P02a, P02b, P02c, ... , P40a, P40b e P40c ai você poe todos com value = "ON" por exemplo

 

ASP

    [*]For Each Item in Request.form

     

    [*] IF LEFT(Item,1) "P" THEN

     

    [*]  IF Request.Form(Item) "ON" THEN

     

    [*]

     

    [*] Pergunta CINT(MID(Item,2,2))

     

    [*] Resposta RIGHT(Item,1)

     

    [*]

     

    [*]  END IF

     

    [*] END IF

     

    [*]Next

 

ai você pegará todas perguntas e a resposta escolhida...

 

com isso você insere no db pra cada usuario e depois de tudo armazenado po de consultar o que o cara acertou

 

bem ta ai um inicio....

Compartilhar este post


Link para o post
Compartilhar em outros sites

então cada radio você coloca pergunta e alternativa no nome

ex: P01a, P01b, P01c, P02a, P02b, P02c, ... , P40a, P40b e P40c ai você poe todos com value = "ON" por exemplo

caro...marioufpa...mais se eu estiver usando radios´s ..os nomes deles tem que ser iguais...por que do jeito que esta..o usuario pode selecionar..varias respostas para uma determinada pergunta..?????nao e verdade!!!?!?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo tava confundindo com com checks box...vou adaptar algo aqui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

então cada radio você coloca pergunta

 

ex: P01, P02, ... , P40 ai você poe para cada um o value igual a alternativa (a, b ou c)

 

ASP

    [*]For Each Item in Request.form

     

    [*] IF LEFT(Item,1) "P" THEN

     

    [*]

     

    [*] Pergunta CINT(RIGHT(Item,2))

     

    [*] Resposta Request.form(Item)

     

    [*]

     

    [*] END IF

     

    [*]Next

 

ai você pegará todas perguntas e a resposta escolhida...

 

agora sim

Compartilhar este post


Link para o post
Compartilhar em outros sites

reativando o topico!!!

estou com essa estruta;

ASP

[*]<%

 

[*]cont = 1

 

[*]While Not RS2.EOF

 

[*]%>

 

[*]<input type="radio" name="P01" value="<%=cont%>">

 

[*] <%

 

[*]cont = cont + 1

 

[*]

 

[*] RS2.MoveNext

 

[*]Wend

 

[*]%>

 

 

e tento recuperar os dados com esse codigo....so que nao esta aparecendo nada na tela!!!

 

ASP

[*]<%

 

[*]For Each Item in Request.form

 

[*]if left(Item,1) "P" THEN

 

[*] Pergunta CINT(RIGHT(Item,2))

 

[*]  Resposta Request.form(Item)

 

[*]end if 

 

[*] Next

 

[*]Response.Write(Pergunta) 

 

[*]%>

 

lembrando que esse exemplo e apenas para a 1º pergunta....

 

aproveitando....gostaria de saber como eu faco para adicionar em uma string...porque de acordo com o post do mario acima....tenho que nomear

cada conjunto de RADIOS..da seguinte maneira

 

P01...P02...P03...P40 como posso fazer iss.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode nomear aquilo no loop que você usará pra listar as perguntas que estao no dbquanto ao codigo escreva dentro do loop<%For Each Item in Request.formif LEFT(Item,1) = "P" THEN Pergunta = CINT(RIGHT(Item,2)) Resposta = Request.form(Item) Response.Write("NUmero da pergunta : " & Pergunta & " - Resposta: " & Resposta) end if Next%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

reativando topico II (o retorno do mais chato!!!)

 

seguinte....estou fazendo agora...a parte de correcao da prova..

estou utilizando esse codigo e gostaria de saber como eu faco para que a nota seje somada...porque estou com apenas 2 perguntas...e o resultado final quando eu acerto as 2 perguntas ( 0.25 )

teoricamente teria que ser 0.50, mais nao esta sendo..acho que e algum problema na logica do LOOP montada..

 

ASP

[*]

 

[*]<!--#include file="conn/conexao.asp" -->

 

[*]<%

 

[*]For Each Item in Request.Form

 

[*] if LEFT(Item,1) "P" THEN

 

[*] Pergunta CINT(RIGHT(Item,2))

 

[*] Resposta Request.Form(Item)

 

[*]

 

[*] SQL3 "SELECT * FROM RESPOSTAS WHERE RE_CODIGO = "&Resposta&""

 

[*] SET RS3 Cnn.execute(SQL3)

 

[*]

 

[*]Nota = 0

 

[*] While Not RS3.EOF

 

[*]  IF RS3("RE_RESPOSTA_CERTA"TRUE THEN

 

[*] Nota = Nota + 0.25

 

[*]  ELSE

 

[*]  Nota = Nota - 0.25

 

[*]  END IF

 

[*] RS3.MoveNext

 

[*] Wend

 

[*] end if 

 

[*]Next

 

[*]Response.Write("Sua nota final é: "& Nota&"%")

 

[*]%> 

 

[*]

 

 

segue o codigo em questao...se alguem souber onde estou errando..!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

a inicializaçao da notaNota = 0deve ficar fora do laço FOR...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ASP

[*]

 

[*]<!--#include file="conn/conexao.asp" -->

 

[*]<%

 

[*]Nota = 0

 

[*]For Each Item in Request.Form

 

[*] if LEFT(Item,1) "P" THEN

 

[*] Pergunta CINT(RIGHT(Item,2))

 

[*] Resposta Request.Form(Item)

 

[*]

 

[*] SQL "SELECT * FROM RESPOSTAS WHERE RE_CODIGO = "&Resposta&" AND RE_RESPOSTA_CERTA = TRUE"

 

[*] SET RS Cnn.execute(SQL)

 

[*]

 

[*] While Not RS.EOF

 

[*] SELECT CASE RS("RE_RESPOSTA_CERTA")

 

[*] CASE RS("RE_RESPOSTA_CERTA"TRUE 

 

[*] Nota = Nota + 0.25

 

[*] CASE RS("RE_RESPOSTA_CERTA"FALSE

 

[*] Nota = Nota - 0.02

 

[*] END SELECT

 

[*] RS.MoveNext

 

[*] Wend

 

[*]

 

[*] end if 

 

[*]Next

 

[*]Response.Write("Sua nota final foi :"&Nota)

 

[*] %> 

 

[*]

 

acho que agora eu consegui...se alguem puder verificar e dar uma analisada para ver se esta certo eu agradeceria.. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

coisa estranha que achei

 

você seleciona apenas se a resposta escolhida for a certa...

 

SQL = "SELECT * FROM RESPOSTAS WHERE RE_CODIGO = "&Resposta&" AND RE_RESPOSTA_CERTA = TRUE"

 

e no slect case você tem um caso quando for errado

 

CASE RS("RE_RESPOSTA_CERTA") = FALSE

Nota = Nota - 0.02

 

ou seja teoricamente este caso nuca sera satisfeito, n'ao sei se funcionaou em seus testes...

 

bem eu faria assim, mais ou menos

 

ASP

    [*]<%

     

    [*]Nota = 0

     

    [*]For Each Item in Request.Form

     

    [*] if LEFT(Item,1) "P" THEN

     

    [*] Pergunta CINT(RIGHT(Item,2))

     

    [*] Resposta Request.Form(Item)

     

    [*]

     

    [*] SQL "SELECT * FROM RESPOSTAS WHERE RE_CODIGO = "&Resposta&""

     

    [*] SET RS Cnn.execute(SQL)

     

    [*]

     

    [*] IF Not RS.EOF THEN

     

    [*] SELECT CASE RS("RE_RESPOSTA_CERTA")

     

    [*] CASE RS("RE_RESPOSTA_CERTA"TRUE 

     

    [*] Nota = Nota + 0.25

     

    [*] CASE RS("RE_RESPOSTA_CERTA"FALSE

     

    [*] Nota = Nota - 0.02

     

    [*] END SELECT

     

    [*] END IF

     

    [*] end if 

     

    [*]Next

     

    [*]

     

    [*]Response.Write("Sua nota final foi :"&Nota)

     

    [*] %>

 

ah como você pode ver eu tambem nao vi a necessidade de você usar um loop ja que você selecionará uma resposta a partir de seu codigo, logo so vira uma resposta e nao varias...

 

veja se eh assim mesmo...

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.