Ir para conteúdo

POWERED BY:

Arquivado

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

celi

criar linque pra votar na enquete

Recommended Posts

olá, bom dia. Gente peguei um tutorial deste enquete, ela até funciona, mas estou com o seuinte problema: ala tem um botão pra votar "<input type="submit" name="Submit" value="votar">" eu queria tirar este botão e colocar um link tipo votar dai abrir um janela pequena pop up. Outra coisa quando eu insiro uma nova enquete o sistema não atualiza e coloca somente a nova enquete, ou seja, ele deixa duas no ar a antiga e a nova. É possível resolver isto? Abaixo segue o código. Obrigado

 

Principal.asp

<% 
Option Explicit

'Criando variáveis
Dim localbd, meubd, rsQuestoes, rsComentarios

'Indicando local do Banco de dados
localbd="driver={microsoft access driver (*.mdb)};dbq=" & server.mappath("adm/bd/bd.mdb")

'Setando conexao
set meubd=server.createobject("adodb.connection")
set rsQuestoes=server.createobject("adodb.RecordSet")
set rsComentarios=server.createobject("adodb.RecordSet")

'Abrindo conexao
meubd.Open localbd

'Faremos aqui a seleção da questão
'Sendo ordernada por Data Decrescente para obter a última enquete cadastrada
'Lembrando que será feito um Relacionamento de tabelas
'Para podermos mostrar questão e opções para voto
rsQuestoes.Open "SELECT TOP 1 * from questoes, votos where questoes.cod_questao=votos.cod_questao and votos.cod_questao=questoes.cod_questao order by data desc", meubd

'Aqui será feita uma SELECT para mostrar a quantidade de comentários
rsComentarios.Open "SELECT count(cod_comentario) as TotalCom from comentarios where cod_questao="&rsQuestoes.fields("cod_questao")&" ", meubd
%>
<html>
<title>Sistema de Enquete</title>
<%
'Aqui será feito o Javascript que abrirá os resultados em Pop-up
%>
<script language="JavaScript" type="text/JavaScript">
<!--


function abrirjanela(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>
<%
'Verificar se o voto foi feito
'Se foi, gravará uma session com a opção marcada
if request.form("voto")<>"" then
	session("voto")=request.form("voto")
	response.write "<script>javascript:abrirjanela('votar.asp','Resultado','width=200,height=580')</script>"
end if
%>
<body>
<table width="200" border="0" cellspacing="2" cellpadding="1">
  <tr>
    <td bgcolor="#FF9900"><font size="2" face="Arial, Helvetica, sans-serif"><b>
      <% 
	  'Aqui estamos mostrando a questão da enquete
	  response.write rsQuestoes.fields("questao")%>
    </b></font></td>
  </tr>
  <tr>
    <form name="form1" method="post" action"principal.asp"><td bgcolor="f4f4f4">
      <table width="200" border="0" cellspacing="1" cellpadding="0">
        <tr>
          <td><table width="200" border="0" cellpadding="0" cellspacing="0">
            
              <% 
			  'Criaremos uma variavel que fará com que a primeira opção fique marcada ao iniciar
			  dim check
			  check="checked"
			  
			  'Iremos aqui utilizar o WHILE para repedir as Opções para voto
			  while NOT rsQuestoes.EOF 
			  %>
			  <tr>
              <td width="23">
			  <input name="voto" type="radio" value="
			  <% 
			  'Aqui setaremos o valor que utilizaremos para somar o voto
			  'de uma determinada opção
			  response.write rsQuestoes.fields("Cod_voto") 
			  %>
			  " <%=check%>>
              </td>
              <td width="177"><font size="2" face="Arial, Helvetica, sans-serif">
                <% 
				'Mostrar o Campo da tabela que mostrará as Opções
				response.write rsQuestoes.fields("Opcao") 
				%>
              </font></td>
				
            </tr>
			<%
			check=""
			rsQuestoes.movenext
			wend
			%>
          </table></td>
        </tr>
        <tr>
          <td>
            <div align="center">
              <br>
              <input type="submit" name="Submit" value="votar">
              <br>
              <br>
            </div></td>
        </tr>
        <tr>
          <td><div align="right"><font size="2" face="Arial, Helvetica, sans-serif"><a href="#" onClick="abrirjanela('resultado.asp','Resultado','width=200,height=280')">Ver parcial de votos</a><br>
                <% 
			'Mostrar a quantidade de comentários desta questão
			response.write rsComentarios.fields("TotalCom") 
			%>
                Comentários</font></div></td>
        </tr>
      </table></td>
    </form>
  </tr>
  <tr>  </tr>
</table>
</body>
</html>

votar.asp

<% 
Option Explicit

'Iremos verificar um Cookie para saber se o usuário já votou
'Se ele já tiver votado, irá para a página de resultados com o QueryString = Inválido
if request.cookies("enquete")("voto")<>"" then
end if

'Criando variáveis
Dim localbd, meubd, votos, opcaoEscolhida, quant

'Gravando a opção escolhida em uma variável
opcaoEscolhida = session("voto")

'Indicando local do Banco de dados
localbd="driver={microsoft access driver (*.mdb)};dbq=" & server.mappath("adm/bd/bd.mdb")

'Setando conexao
set meubd=server.createobject("adodb.connection")
set votos=server.createobject("adodb.RecordSet")

'Abrindo conexao
meubd.Open localbd
'Selecionando o registro da Opção escolhida
votos.Open "SELECT * from Votos where cod_voto="&opcaoEscolhida&"", meubd

'Guardar quantidade de votos em uma variável antes deste voto
quant = votos.fields("votos")

'Iremos executar agora o SQL que abrirá que atualizará os votos
meubd.EXECUTE "UPDATE votos SET votos = " & quant & "+1 where cod_voto="&opcaoEscolhida&""

'Para evitar que o usuário vote novamente, iremos criar um cookie
response.Cookies("Enquete")("Voto") = date
'Setando valor à session
session("voto")=""

'O voto já foi computado, agora irá para a página que exibirá o resultado
response.redirect "resultado.asp?questao= "& votos.fields("cod_questao") &""

%>

resultado.asp

<% 
Option Explicit

'Criando variáveis
Dim localbd, meubd, votosTotal, votos

'Indicando local do Banco de dados
localbd="driver={microsoft access driver (*.mdb)};dbq=" & server.mappath("adm/bd/bd.mdb")

'Setando conexao
set meubd=server.createobject("adodb.connection")
'Faremos dois recordset, uma para mostrar a quantidade de todos os votos
'e outro para mostrar os votos de cada opção
set votosTotal=server.createobject("adodb.RecordSet")
set votos=server.createobject("adodb.RecordSet")

meubd.Open localbd
'Agora a SELECT dos votos individuais
votos.open "SELECT top 1 * from Votos, questoes where votos.cod_questao = questoes.cod_questao and questoes.cod_questao=votos.cod_questao order by data desc", meubd
'Fazendo a SELECT do total de votos
votosTotal.open "SELECT sum(votos) as totalvotos from votos where cod_questao ="&votos.fields("cod_questao")&"", meubd

%>
<html>
<title>Sistema de Enquete</title>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="200" height="250" border="0" cellpadding="1" cellspacing="2">
  <tr>
    <td height="25"><strong><font size="2" face="Arial, Helvetica, sans-serif">
	<%
	'Mostrar aqui a questão 
	response.write votos.fields("questao")
	%>
    </font></strong></td>
  </tr>
  <tr>
    <td valign="top"><div align="center">
      <font color="#FF9900" size="2"><strong><font face="Arial, Helvetica, sans-serif">Resultado
      - <%=votostotal.fields("totalvotos")%> votos</font></strong></font><font face="Arial, Helvetica, sans-serif">
	  <font size="2">
	  <%
	  dim porcentagem
	  'Fazer a repetição das opções com seus votos em porcentagem
	  While NOT votos.EOF
	  %>
      </font></font><font size="2">      </font>
	  <table width="100%" border="0" cellspacing="1" cellpadding="0">
        <tr>
          <td><font size="2" face="Arial, Helvetica, sans-serif">
		  <%
		  'Mostrar opção
		  response.write votos.fields("opcao")
		  %>
		  </font></td>
        </tr>
		<%
		'Aqui será feita a conta dos votos em porcentagem
		porcentagem = cdbl(votos.fields("votos"))*100
		porcentagem = porcentagem / cdbl(votosTotal.fields("totalvotos"))
		%>
        <tr>
          <td height="18" valign="middle"><font size="2" face="Arial, Helvetica, sans-serif"><img src="img.gif" width="<%=porcentagem%>%" height="10"> 
		      <font color="#666666">
		      <%
		  'Mostrar valor em porcentagem com apenas uma casa decimal
		  response.write formatnumber(porcentagem,1)
		  %>
	      %                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       </font></font></td>
        </tr>
      </table>
	  <font face="Arial, Helvetica, sans-serif">
	  <%
	  votos.movenext
	  wend
	  %>
	     <a href="comentarios.asp"><font size="2"><br>
         Deixe um comentário.</font></a>
	      </p>
          </font>        </font>
	      <p><font size="2" face="Arial, Helvetica, sans-serif">
	  <%
	  'Se o voto do usuario já havia sido feito mostrar uma mensagem
	  if request.querystring("status")="Invalido" then
	  	response.write "Você já votou hoje."
	  end if
	  %>
      </font><font size="2">	  </font>	  </p>
    </div></td>
  </tr>
</table>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele gera algum erro ????

na verdade, eu aconselho, verificar um sistema de enqueto (pool) funcionando 100%, ficará mais fácil, pra você

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma procurada em outra aplicação, pois existem várias que ao receber o oncluck abre uma pop-up para votar, caso não encontre, é só fazer ele abrir o pop-up para votar

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.