Hola amigos mi problema es que no se cambia mi pregunta al momento de que se envían los datos.
Resumen: El usuario responde una pregunta seleccionando un radio button, después de hay se envía la petición ajax con el valor de la pregunta y el contador es decir que esa variable será la encargada de cambiar la pregunta del arreglo de preguntas $array_preguntas[$contador]; Lo que quiero lograr cada vez que se envie una peticion ajax cambiar de pregunta mediante el contador. Y no cambia es cómo si no incrementara mi variable $contador.
Que estoy haciendo mal por favor me podrían orientar. Gracias.
Mi código en donde capturo mis variables del ajax:
$datos = array();
$Comprobar_Estado = false;
if(isset($_GET['contador']) && !empty($_GET['contador'])){
if($_GET['contador']){
$respuesta = $_GET['valor'];
$contador_preguntas = $_GET['contador'];
Guardar_Datos($respuesta,$contador_preguntas);
CambiarPregunta();
$datos["estado"] = "correcto";
}else{
$datos["estado"] = "error";
}
$Comprobar_Estado = true;
}
if($Comprobar_Estado){
$resultadoJson = json_encode($datos);
echo $_GET['jsoncallback'] . '(' . $resultadoJson . ');';
exit();
}
Aquí esta mi código html...................
<!DOCTYPE html>
................
Mi código en donde intento cambiar de pregunta, después sigue un poco más de código HTML y mi php.
<?php
$array_id_preguntas = array();
$array_preguntas = array();
$array_respuestas = array();
$array_contador = array();
?>
<h5>
<?php
while($registro = mysqli_fetch_array($resultado)){
array_push ($array_id_preguntas, $registro[0]);
array_push ($array_preguntas, $registro[1]);
}
$contesto=false;
$contador;
CambiarPregunta();
function CambiarPregunta(){
global $contesto;
global $contador;
global $array_preguntas;
if(!$contesto){
$contador=0;
}
if($contador == 0){
echo $array_preguntas[$contador];
}else{
echo $array_preguntas[$contador];
}
}
function Guardar_Datos($respuesta,$contador_preguntas){
global $array_respuestas;
$array_respuestas[] = $respuesta;
global $contador;
$contador = $contador_preguntas;
global $contesto;
$contesto = true;
}
?>
</h5>
Mi código ajax, Aclaro que si me funciona pero en mi php no cambia la pregunta.
var contador_preguntas = 1;
$('input[type=radio]').click(function(){
var value = this.value;
var objeto = this;
var request = $.ajax({
url: "cuestionario.php",
type: "POST",
data:{ valor: value, contador: contador_preguntas},
dataType:"jsonp",
jsonp:"jsoncallback",
crossDomain: true,
cache: false
});
request.done(function(data){
if(data.estado=="correcto"){
alert("Exito ");
contador_preguntas++;
}else{
alert("Error");
}
});
});
Ya he comprobado que si incrementa cuando imprimo el valor de la variable $contador en el 'else' me sale esto: El 1 indica que se cambio el cero por este.
1 jQuery33107174231404939353_1533012029373({"estado":"correcto"});
Entonces concluí que si lo esta incrementado sin embargo no se cambia la pregunta, Al principio cuando la recargo la pagina si me muestra todo bien pero cuando selecciono una respuesta no cambia la pregunta y mi código ajax de mi js si me funciona solo quiero saber si estoy haciéndolo bien o que me falta o no será lo indicado lo que estoy haciendo para conseguir lo que quiero acepto sugerencias porfa.
Otra observación en la que concluí es que creo que tengo que esperar que termine el proceso de peticion ajax así que no puedo hacer lo que quiero hasta que me devuelva a respuesta por el lado del cliente pero si esto es cierto, cómo voy a poder cambiar la pregunta cuando se seleccione una respuesta tiene que ser en ese mismo momento o no?