Explico brevemente como funciona,al cargar la pagina encuesta.php en el <select> cargo las encuestas ordenadas por fecha. y al seleccionar la encuesta el evento 'onchange' hace correr la funcion javascript 'cargarEncuesta()'
codigo..
Código PHP:
<?php
require "conexion.php";
require_once ('sajax/php/Sajax.php');
function recuperarEncuesta($idEncuesta){
$res = mysql_query("SELECT * FROM opciones, encuestas WHERE opciones.idEncuesta = encuestas.idEncuesta AND opciones.idEncuesta = $idEncuesta ORDER BY nombreOpcion");
echo "dwqdqd";
if(mysql_num_rows($res)){
while($row = mysql_fetch_array($res)){
$ret .= "<div id='opcion' name='opcion'>";
$ret .= "<span>$row[idOpcion]</span>";
$ret .= "<span>$row[nombreOpcion]</span>";
$ret .= "<span>$row[votos]</span>";
$ret .= "</div>";
$totalVotos += $row[votos];
$tituloEncuesta = $row[nombreEncuesta];
}
$ret .= "<div>$totalVotos</div>";
$ret .= "<div>$tituloEncuesta</div>";
echo "22";
}
return $ret;
echo "dwad";
}
function votarOpcion($idOpcion){
$res = mysql_query("UPDATE opciones SET votos = votos +1 WHERE idOpcion = $idOpcion");
}
sajax_init();
sajax_export("recuperarEncuesta");
sajax_export("votarOpcion");
sajax_handle_client_request();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/RE/xhtml1/DTD/xhtml-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Sajax - encuestas - online..
</title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"/>
<script language="javascript">
<?php
sajax_show_javascript();
?>
window.onload = function(){
setInterval(function(){cargarEncuesta()},200000);
};
function cargarEncuesta(){
var idEncuesta;
idEncuesta = document.getElementById("cdoEncuesta").value;
if(idEncuesta != ''){
x_recuperarEncuesta(idEncuesta, mostrarEncuesta);
}
}
function votar(idOpcion){
x_votarOpcion(idOpcion, cargarEncuesta);
}
function mostrarEncuesta(resultado){
alert("ewf");
if(resultado != ''){
var opcion, idOpcion, nombreOpcion, votos, salida = '',tituloEncuesta;
var contenedor = document.getElementById("contenedor");
contenedor.innerHTML = resultado;
cantidadOpciones = contenedor.getElementsByTagName("div").length -2;
totalVotos = contenedor.getElementByTagName("div")[cantidadOpciones].innerHTML;
tituloEncuesta = contenedor.getElementByTagName("div")[cantidadOpciones+1].innerHTML;
for(var c=0;c<cantidadOpciones;c++){
opcion = contenedor.getElementsByTagName("div")[c];
var aa = 1;
var bb = 1;
if(bb == aa){
alert("fwe");
}
idOpcion = opcion.getElementsByTagName("span")[0].innerHTML;
nombreOpcion = opcion.getElementsByTagName("span")[1].innerHTML;
votos = opcion.getElementsByTagName("span")[2].innerHTML;
porcentaje = parseFloat(votos * 100 / totalVotos);
porcentaje = porcentaje.toFixed(2);
if(votos == 1){
votos = votos + 'voto';
}else{
votos = votos + 'votos';
}
salida = salida + '<div class="nombreOpcion"><a onclick="votar(' + idOpcion + ')">[v]</a>';
salida = salida + nombreOpcion + '[' + votos + ',' + porcentaje + '%]</div>';
salida = salida + '<div class="votos" style="width:' + porcentaje + 'px;"></div>'
}
document.getElementById("tituloEncuesta").innerHTML = tituloEncuesta;
document.getElementById("resultado").style.display = '';
document.getElementById("resultado").innerHTML = salida;
}else{
document.getElementById("tituloEncuesta").innerHTML = '';
document.getElementById("resultado").style.display = '';
document.getElementById("resultado").innerHTML = 'No hay resultados';
}
}
</script>
</head>
<body>
<div id="contenedor" name="contenedor" style="display:none;"></div>
<div id="contenido">
<p> </p>
<h1><?php buscarEncuestas(); ?></h1>
<div id="tituloEncuesta" name="tituloEncuesta" class="tituloEncuesta"></div><br /><br />
<div id="resultado" name="resultado" class="resultado" style="display:none;"></div>
</div>
</body>
</html>
<?php
function buscarEncuestas(){
$res = mysql_query("SELECT * FROM encuestas ORDER BY fechaEncuesta");
if(mysql_num_rows($res)){
$ret = "seleccione encuesta: ";
$ret .= "<select name='cdoEncuesta' id='cdoEncuesta' onchange='cargarEncuesta()'>";
$ret .= "<option value=''>-------------</option>";
while($row = mysql_fetch_array($res)){
$ret .= "<option value='$row[idEncuesta]'>$row[nombreEncuesta]</option>";
}
$ret .= "</select>";
}else{
$ret = "No hay encuestas disponibles";
}
echo $ret;
}
?>