Trabajar con botones radio (novato 100%)

Voy al grano, tengo mi base de datos ya creada y tengo un archivo llamado cone.php que es donde tengo la conexión a la base de datos (se que funciona porque la he probado), tengo una página donde tengo para escoger entre tres botones de opción (sección, materia y docente) que tienen valor 1, 2 y 3 respectivamente
<html>
<H3><CENTER> Materias </CENTER></H3>
<HR>
<TD> <INPUT TYPE='HIDDEN' NAME=opcion VALUE=''></TD> <TABLE WIDTH='450' ALIGN='center'> <FORM METHOD='POST' ACTION='inforsecc.php')><TR><TD ALIGN='center' COLSPAN='2'> </TD>
<TR><TD align='center'>Buscar por:</TD> <TD> <INPUT TYPE='RADIO' NAME='tipo' VALUE='1' CHECKED>SECCION <INPUT TYPE='RADIO' NAME='tipo' VALUE='2' >MATERIA <INPUT TYPE='RADIO' NAME='tipo' VALUE='3' >DOCENTE </TD></TR> <TR><TD ALIGN='center'>NÓMINA DE:</TD><TD><INPUT TYPE='TEXT' NAME='codigo' SIZE='20' MAXLENGTH='15'></TD></TR> <TR><TD ALIGN='center' COLSPAN='2'><INPUT TYPE='SUBMIT' VALUE='Consultar'></TD></TR> </TABLE> </FORM>
</BODY>
</HTML>
Ok hasta aquí bien ahora lo que no se hacer es asignar el código php para que me muestre 3 columnas depende lo que selecciones (siempre serán 3) que son Código de Materia, Nombre de Materia y Nombre de Docente, otra cosa es que deben saber que la persona nunca va a escribir completo. Ejemplo si el profesor se llama Perez Antonio, yo con solo escribir Perez me aparezcan los profesores que tengan apellido perez.
Otra cosa es que los datos salen de tablas distintas

1 respuesta

Respuesta
1
Para el control de los controles puedes hacerlos con el evento onclick de cada uno de ellos, y que invoquen una función javascript, la cual podría:
* redireccionar la pagina para que se cargue con una estructura diferente depende al codigo seleccionado.
algo asi
<input type='radio' name='tipo' value='1' onclick="SeleccionOpcion(location.href='http://tudominio/tupagina.php?opcion='+this.value);">
* Utilizar ajax para que se actualice en tiempo real
Para el tema resultados de consulta, puedes hacer una consulta armando matrices de valores, por ejemplo:
Si envía PEREZ ANTONIO
Dividir esa cadena en palabras y hacer la búsqueda con la clausula like sobre los campos donde puede estar esas palabras
He estado leyendo bastante por la red y he conseguido varios ejemplos, el que veo que se acerca más es este, por supuesto la conexión yo la hago bien, allí esta otra obviamente, pero de igual forma no me hace nada, queda en blanco la página
sera que puedes decirme en que estoy fallando allí, en la opción 2 y 3 no he colocado nada aun
<?php
extract($_POST);
if(!empty($submit))
{
if($opcion=='1')
{
<?
$base="Nombre_de_la_base_de_datos";
$tabla="seccion";
$conexion=mysql_connect("localhost","usuario","clave");
mysql_select_db($base,$conexion);
$resultado= mysql_query("SELECT cod_mat, aula1, horario1 FROM $tabla WHERE (cod_mat LIKE '{$_POST['codigo']}' ) ",$conexion);
# CREAMOS UNA CABECERA DE UNA TABLA (codigo HTML)
echo "
<table align=center border=2>
";
while ($registro = mysql_fetch_row($resultado)){
echo "
<tr>
";
foreach($registro as $clave){
echo "
<td>",$clave,"</td>
";
}
}
echo "
</table>
";
mysql_close();
?>
<?php
//lo que quieras hacer
}if($opcion=='2')
{
//Haz lo que quieras
}
}if($opcion=='3')
{
//Haz lo que quieras
}
}
?>
Hay que tener en cuenta que la función LIKE funciona con campos tipo texto y no sobre campos tipo entero ni numéricos. Para este tipo de campos tienes que hacer la consulta con una comparación de igualdad completa
ejemp: id es entero
where (id=$id)
Ejemp: nombre es varchar
where (nombre like '%jua%')
Sobre el tema de la consulta, puede deberse a eso, mira el código, adecualo a tus conexiones y mira si se debe a eso, haz la comparativa con u campo tipo texto o varchar.
<?php
if(!empty($submit)) {
if($opcion=='1') {
$base="Nombre_de_la_base_de_datos";
$tabla="seccion";
$conexion=mysql_connect("localhost","usuario","clave");
mysql_select_db($base, $conexion);
$query="SELECT cod_mat, aula1, horario1 FROM $tabla WHERE (cod_mat LIKE '%".$POST[codigo]."%')";
$echo "query: $query<br>";
$resultado= mysql_query($query, $conexion);
# CREAMOS UNA CABECERA DE UNA TABLA (codigo HTML)
echo "
<table align='center' border='2'>
";
while ($registro = mysql_fetch_row($resultado)){
echo "
<tr>
";
foreach($registro as $clave){
echo "
<td>$clave</td>
";
}
echo "
</tr>
";
}
echo "
</table>
";
mysql_close();
}
else if($opcion=='2'){
//Haz lo que quieras
}
else if($opcion=='3'){
//Haz lo que quieras
}
}
?>
Gracias por la pronta respuesta bueno te informo que gracias a unos ejemplos y tu ayuda ya me funciona el like perfectamente, ahora lo que necesito es que haga la función dependiendo cual de los tres botones de opción que elija la persona, el código es el siguiente:
<?
$base="nombre";
$tabla="seccion";
$conexion=mysql_connect("localhost","usuario","clave");
mysql_select_db($base,$conexion);
?>
<?php
$resultado= mysql_query("SELECT cod_mat, aula1, horario1 FROM $tabla where (cod_mat LIKE '{$_POST['codigo']}%')",$conexion);
# CREAMOS UNA CABECERA DE UNA TABLA (codigo HTML)
echo "
<table align=center border=2>
";
while ($registro = mysql_fetch_row($resultado)){
echo "
<tr>
";
foreach($registro as $clave){
echo "
<td>",$clave,"</td>
";
}
}
echo "
</table>
";
mysql_close();
?>
Como ya te dije este código me funciona perfectamente al escribir algo en el cuadro de texto
Pero ahí ya tienes la solución, si te funciona para uno, te debe funcionar para los demás, tan solo captura el tipo de radio button seleccionado y el valor a buscar, y de acuerdo a eso crea el query...
Ya tienes el 99% animo.
Esa es la parte que me pierde no logro hacerlo funcionar
<input name="tipo" type="radio" value="1" />SECCION <input name="tipo" type="radio" value="2" />MATERIA <input name="tipo" type="radio" value="3" />DOCENTE
este es el codigo html, ahora como lo paso al php, me imagino que con una condicion pero no me funciona con
if($opcion=='1') {
echo " opcion 1"
}
nose si alli va opcion, o si va tipo que es el name que tiene el radio, aunque igual probe asi de las 2 formas y nada
Veamos
Parte de formulario
<input name="tipo" type="radio" value="1" />SECCION
<input name="tipo" type="radio" value="2" />MATERIA
<input name="tipo" type="radio" value="3" />DOCENTE
como puedo ver, el control se llama tipo, osea que cuando recibas la opcion, debes recibir tipo, si el envio es get $_GET[tipo] y si es por post $_POST[tipo]
if($_POST[tipo]=='1') {
   echo " opcion tipo 1 osea SECCION";
}
else if ($_POST[tipo]=='2'){
   echo "opcion tipo 2 osea MATERIA";
}
else if ($_POST[tipo]=='3'){
   echo "opcion tipo 3  osea DOCENTE";
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas