puedes probar algo asi, sino entiendes algo preguntame por aca mismo.
HTML
Código HTML:
Ver original<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/v1.98/DTD/v1.98-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8">
#cuestionario {
padding:10px;
margin:0px;
list-style:none;
}
#cuestionario dd {
display:block;
height:18px;
text-decoration:none;
color:#666666 !important;
padding:1px 5px 1px 5px;
border:1px solid #ffffff;
}
#cuestionario dd:hover {
border:1px solid #e53500;
text-decoration:none;
cursor:pointer;
}
.activo{
background:red;
font-weight:bold;
color:#fff;
}
#next{ width:100px; border:solid 1px #CCC; text-align:center; display:none;}
#next:hover{ background:#009; color:#FFF; cursor:pointer;}
<script type="text/javascript"> $(document).ready(function() {
var question = 0;
function loadQuestion(){
$('#cuestionario').html('').load('preguntas.php?q='+(++question));
}
$('a.empezar_quiz').click(function() {
loadQuestion()
$(this).hide();
$('#next').show();
});
$('#next').click(function(){
if(getN() == $('.activo').length){
var val = $('#answers').val();
val = (val != '')?val+'|':val;
var respuestas = '';
$('.activo').each(function(i){
respuestas += $(this).attr('id').split('-')[1];
if(i!= ($('.activo').length-1))
respuestas+=',';
});
val += getPregunta()+':'+respuestas;
$('#answers').val(val);
loadQuestion();
}else{
var n = getN();
var text = (n > 1)?' preguntas':' pregunta';
alert('Debe seleccionar '+getN()+text);
}
});
function getN(){
return $("#cuestionario dl").attr('class').split('n')[1].split(']')[0].split('[')[1];
}
function getPregunta(){
return $("#cuestionario dl").attr('id').split('-')[1];
}
$("#cuestionario dl dd").live('click', function () {
if($(this).hasClass('activo') || $('.activo').length < getN()){
$(this).toggleClass('activo');
//$("#debug").text("Hay " + $('.activo').length + " elementos seleccionados");
}
});
// Una vez empieza el test el boton empezar debe desaparecer
//$('a.empezar_quiz').hide();
});
<a class="empezar_quiz" href="#"> Empezar con las preguntas
</a>
<!-- Carga las preguntas y respuestas -->
<!-- Aqui se guardaran las respuestas -->
<input id="answers" name="answers" type="hidden" value="" />
<div id="next">Continuar
</div>
<!-- DEBUG: muestra las respuestas seleccionadas -->
PHP
Código PHP:
Ver original<?php
//EN EL ID DE CADA dl COLOCAMOS q- SEGUIDO POR EL NUMERO DE LA PREGUNTA, ESTO ES PARA SABER EN QUE PREGUNTA VAMOS
//CADA RESPUESTA SERA ALGO PARECIDO, TENDRA UN ID r- SEGUIDO POR EL NUMERO DE LA RESPUESTA
//LA CLASE QUE TIENE EL dl, SERA PARA INDICAR CUANTAS PREGUNTAS DEBEN SER SELECCIONADAS ANTES DE CONTINUAR
echo 'aqui '.$_REQUEST['q'];
if ($_GET['q']==1){?>
<dl id="q-1" class="n[3]">
<dt>Pregunta 1: <b>Selecciona 3 colores:</b></dt>
<dd id="r-1">Rojo</dd>
<dd id="r-2">Verde</dd>
<dd id="r-3">Azul</dd>
<dd id="r-4">Amarillo</dd>
<dd id="r-5">Negro</dd>
<dd id="r-6">Naranja</dd>
</dl>
<?php }elseif($_GET['q']==2) {?>
<dl id="q-2" class="n[1]">
<dt>Pregunta 2: <b>Que lenguaje de programacion te gusta mas?</b></dt>
<dd id="r-1">JAVA</dd>
<dd id="r-2">PHP</dd>
<dd id="r-3">ASP</dd>
<dd id="r-4">C</dd>
</dl>
<?php }?>