HTML y PHP

M

Buenas,

Estoy montando una base de datos a partir de un formulario en html y tengo dos dudas.

Código HTML:

<label for="serie">
    	<input id="serie" type="radio" name="serie" value="serie"> Nova sèrie</label><br>
    	</label>
    	
	
	<label for="temporada">
	<input id="temporada" type="radio" name="temporada" value="temporada"> Nova temporada</label><br>
	</label>
	
	
	<label for="qualificar">
	<input id="qualificar" type="radio" name="qualificar" value="qualificar"> Qualificar una temporada</label><br>
	</label>
	


	<label for="dades">
	<input id="dades" type="radio" name="dades" value="dades"> Dades d'una sèrie</label>
	</label>

En mi formulario tengo 4 opciones que elegir. Cuando el usuario elige una opción, le tiene que llevar a un archivo php.

He podido lograr el siguiente código de php, pero lo que hace es redireccionar a un html. Es decir, en la url sale la dirección del archivo.html, pero yo quiero que se siga gestionando desde el archivo.php.

Mi primera duda es como puedo gestionar diferentes .html en un mismo archivo.php sin que redireccione automáticamente.

<?php
if(isset($_POST["serie"])) { 
	header('Location: novaSerie.html'); 

} else if(isset($_POST["temporada"])){
	header('Location: novaTemporada.html'); 

} else if(isset($_POST["qualificar"])){
	header('Location: qualificar.html');

} else if(isset($_POST["dades"])){
	header('Location: dadesSerie.html');  
} ?>

Mi segunda duda es que el "isset" del achivo.php busca el "name" del formulario. Si pongo a todos un "name" diferente, el formulario me deja elegir todas las opciones. Lo que quiero es que el usuario solo pueda elegir una opción.

Gracias!

PD: No se si he logrado explicarme bien

catalon

Hola,
Si quieres que solo se pueda seleccionar un radio le tienes que dar el mismo name a todos y filtrar por el value.
Lo de la redirección lo haces tu con el header(). Si quitas eso dejara de redireccionar.

1 respuesta
M

#2 El problema es que el ejercicio me dice lo siguiente:

Si seleccionamos la opcion "series": Nos lleva a la pagina web "datos.php" donde saldra una web donde podremos añadir series
Si seleccionamos la opcion "temporada": Nos lleva a la pagina web "datos.php" donde saldra otra web diferente a la anterior, donde podremos añadir temporadas.

Se entiende?

Como filtro por "value" en el isset?

M

ya he resuelto la primera duda:

<?php
if(isset($_POST["gestio"])) { 
	echo file_get_contents ('http://localhost/PHP/novaSerie.html'); 

} else if(isset($_POST["temporada"])){
	echo file_get_contents ('http://localhost/PHP/novaTemporada.html'); 

} else if(isset($_POST["qualificar"])){
	echo file_get_contents('http://localhost/PHP/qualificar.html');

} else if(isset($_POST["dades"])){
	echo file_get_contents ('http://localhost/PHP/dadesSerie.html');  
} ?>

Como hago para que el isset coja por "value" i no "name"?

1 respuesta
banerplayer

#4 Yo creo que hay algo que no has entendido del ejercicio (lo digo segun mi experiencia estudiando).

Diría que todos los archivos deben ser php. Cada uno debe contener su vista (html) y funciones/logica para tratar los datos.

Respecto a tu ultima duda, tienes que comprobar el valor de $POST["name"] ( if $POST["name"] == value ) y haria las redirecciones con header().

Comentar que en estos casos, poner el enunciado del ejercicio completo ayudaria a dar una ayuda un poco mas concisa por nuestra parte.

1 respuesta
M

#5 Gracias por tu respuesta.

Al final he podido resolver el ejercicio.

Como bien decia, tengo que tener archivos .html y archivos php. En ese sentido he entendido bien el ejercicio, mas que nada porque el profe nos ha pasado un listado de los archivos que tenemos que entregar y hay .html y .php.

Lo he resulto asi:

<?php
if (isset($_POST['gestio']))
{
   $opcio = $_POST['gestio'];
	if ($opcio == 'serie') {
      echo file_get_contents ('http://localhost/PHP/novaSerie.html'); 
   }
 	elseif ($opcio == 'temporada') {
     echo file_get_contents ('http://localhost/PHP/index2.html'); 
   }

elseif ($opcio == 'qualificar') {
 echo file_get_contents('http://localhost/PHP/index2.html');
   }

elseif ($opcio == 'dades'){
 echo file_get_contents ('http://localhost/PHP/index2.html');  
   }

}


?>

Que te parece?

Yumigestor

En lugar de if elseif... Usa esto

https://www.php.net/manual/es/control-structures.switch.php

1 respuesta
M

#7 total. Lo acabe utilizando ya que era la mejor opcion.

Gracias

Usuarios habituales