Foros del Web » Programando para Internet » PHP »

Guardar valor del radio en una matriz(array) php y luego usarla en post

Estas en el tema de Guardar valor del radio en una matriz(array) php y luego usarla en post en el foro de PHP en Foros del Web. Hola Programadores, necesito que me ayuden con un problema en donde estoy estancado desde hace un buen tiempo. La pagina debe mostrar un formulario con ...
  #1 (permalink)  
Antiguo 28/03/2014, 01:13
 
Fecha de Ingreso: marzo-2014
Mensajes: 2
Antigüedad: 10 años
Puntos: 0
Guardar valor del radio en una matriz(array) php y luego usarla en post

Hola Programadores, necesito que me ayuden con un problema en donde estoy estancado desde hace un buen tiempo.

La pagina debe mostrar un formulario con preguntas tipo radio select y de texto (pero apenas voy en las preguntas de radio), que la persoa seleccione su respuesta y luego la envie hacia otra pagina que es la que me calificara la pregunta. Como apenas estoy empezando con Arrays tengo diversos problemas
  1. 1
    No se como se pasa una variable arrays por POST
  1. 2
    quiero hacer una forma sencilla de verificar la respuesta, pero no me deja hacer de esta fora por que necesito llamar el indice del vector que esta mas adentro
  1. 3
    No se si en el name del radio se debe colocar la misma variable array que llamo o debe ser otra
[LIST=1]

Aqui esta el codigo que he avanzado, lo hice en una pagina para mayor comodida pero lo necesito en 2 paginas

Código PHP:
<?php
$pregunta
[0]=array("Quien descubrio america","John Lenon","Matusalen","Homero simpson","Americo vespucio","4");
$pregunta[1]=array("Tu pais se llama","peru","colombia","eeuu","nose","2");
//$matriz[][]  otro posible ejemplo
if(isset($_POST['accion']) && $_POST['accion'] == "enviar"){//1:???:
    //echo "Cierto ";
    
if(!empty($_POST['pregunta'])){    
        
$campo $_POST['pregunta'];
        foreach(
$campo as $indice=>$value){
        echo 
$indice.'--'.$value.'</br>';
        
$item = (count($pregunta[0]))-2;//cuenta las preguntas para conocer la posicion de el que tiene la respuesta, se le resta 2 por la posicion de la respuesta y por que empieza a contar desde 1, cuando(siendo que) el vector se inicializa en 0
        
echo $item.' * </br>'.$pregunta[0][$indice].' **</br>';
        if (
$pregunta[0][$indice] == $value){//2:???:
            
echo 'La Respuesta es correcta ( '.$pregunta[0][$value] .' )</br>';
        }
        else
        {
            echo 
'La Respuesta '.$pregunta[0][$value].' INCORRECTA</br>';
        }
        
//echo $pregunta[0][$value];
        
print_r($pregunta.'</br>');
        }
    }else
    {
        echo 
"Debe escojer una opcion";
        
    }
}
?>
Código HTML:
<html>
	<head><title> Manejo de arreglos</title></head>
	<body>
	<h2>
	pregunta:
	</h2>
	<?
	echo $pregunta[0][0];
	
	?>
	<form name="frmQuiz" action="" method="POST">
		<input type="radio" name="pregunta[0]" value="1" > <!--3-->:???:
		<label for="pregunta1"> <? echo $pregunta[0][1];?>
		<input type="radio" name="pregunta[0]" value="2" >  
		<label for="pregunta1"> <? echo $pregunta[0][2];?>
		<input type="radio" name="pregunta[0]" value="3" >  
		<label for="pregunta1"> <? echo $pregunta[0][3];?>
		<input type="radio" name="pregunta[0]" value="4" >  
		<label for="pregunta1"> <? echo $pregunta[0][4];?></br>
		
		<input type="hidden" name="accion" value="enviar"/>
		<input type="submit" value="Enviar"/>
		
	</form>
	</body>
</html> 
  #2 (permalink)  
Antiguo 28/03/2014, 06:30
 
Fecha de Ingreso: marzo-2014
Mensajes: 2
Antigüedad: 10 años
Puntos: 0
Respuesta: Guardar valor del radio en una matriz(array) php y luego usarla en post

Hola Amigos. No se si sera por el sueño que tenia, perome levante y me puse a analizar el codigo hasta que por fin encontre la forma de calificar la pregunta.

Les actualizo codigo

Código PHP:
<?php
$pregunta
[0]=array("Quien descubrio america","John Lenon","Matusalen","Homero simpson","Americo vespucio","4");
$pregunta[1]=array("Tu pais se llama","peru","colombia","eeuu","nose","2");
//$matriz[][]  otro posible ejemplo
if(isset($_POST['accion']) && $_POST['accion'] == "enviar"){
    
//echo "Cierto ";
    
if(!empty($_POST['pregunta'])){    
        
$campo $_POST['pregunta'];
        foreach(
$campo as $indice=>$value){
        echo 
$indice.'--'.$value.'</br>';
        
$item = (count($pregunta[0]))-1;//cuenta las preguntas para conocer la posicion de el que tiene la respuesta, se le resta 1 por que empieza a contar desde 1, cuando(siendo que) el vector se inicializa en 0
        /*echo ' Item: '.$item.' * </br>Pregunta '.$pregunta[0][$item].' **</br> Value '.$value.' *** </br>';*/
        //compara si el valor escojido en el radio (value)
        //es = a la respuesta corecta, que en este caso se 
        //encuentra en la ultima posicion del vector
        
if ($pregunta[0][$item] == $value){
            echo 
'La Respuesta es correcta ( '.$pregunta[0][$value] .' )</br>';
        }
        else
        {
            echo 
'La Respuesta '.$pregunta[0][$value].' INCORRECTA</br>';
        }
        
//echo $pregunta[0][$value];
        
print_r($pregunta.'</br>');
        }
    }else
    {
        echo 
"Debe escojer una opcion";
        
    }
}
?>
Aunque me faltan otros pasos mas. Ayudenme en lo que mas puedan, se los agradeceria

Etiquetas: $_post, arrays, input, preguntas, radio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:32.