Foros del Web » Programando para Internet » PHP »

Capturar Dato de la lista desplegable dinamica

Estas en el tema de Capturar Dato de la lista desplegable dinamica en el foro de PHP en Foros del Web. hola amigos quisiera saber que error tengo si alguien me puede hacer el favor de ayudarme resulta que tengo una lista desplegable dinamica que la ...
  #1 (permalink)  
Antiguo 07/12/2008, 21:09
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Capturar Dato de la lista desplegable dinamica

hola amigos quisiera saber que error tengo si alguien me puede hacer el favor de ayudarme resulta que tengo una lista desplegable dinamica que la saco de mi basde de datos y al momento que el usuario eliga que opcion quiere esta me la guarde en una variable para luego insertarla en una tabla diferente de mi base de datos

Código PHP:
<form id="formulario" action="registrar.php" method="post">
    Nombre: &nbsp;<input type="text" name="nombre">
    Cedula:&nbsp; <input type="text" name="cedula"><br><br>
    Direccion:<input type="text" name="dir">
    Telefono:<input type="text" name="telefono"><br><br>
    Institucion:<input type="text" name= "institucion"><br><br>
    Programa:<br>
        Electronica<input type="radio" name="programa" value="Electro">
        Telecomunicaciones<input type="radio" name="programa" value="tele">
        Informatica<input type="radio" name="programa" value="info"><br><br>
 
    Capacitacion:    
<select name="categoria">
    <option selected disabled>-- Selecciona El curso --</option>
    <?
    
        $con 
mysql_query("SELECT nom_curso FROM curso ORDER BY id_curso");
        while (
$row mysql_fetch_array($con)) {
        
$cat $row['nom_curso'];
    
?>
    <option ><? echo $cat ?></option>
    <?
        
}
    
?>
</select>
este es registrar.php

Código PHP:
<?    
if ($_REQUEST['programa']=="Electro")
  {
 
$pro="Electronica";
  }
  else if (
$_REQUEST['programa']=="tele")
    {
    
$pro="Telecomunicaciones";
    }
 
  else if (
$_REQUEST['programa']=="info")
    {
       
$pro="Informatica";
    }
 
         
if (isset(
$cedula,$nombre,$dir,$telefono,$institucion,$pro$cat$email)) 
{             
$save="INSERT INTO  `proyecto`.`inscritos` (Cedula, Nombre, Direccion, Telefono, Institucion, Programa, Capacitacion, E-mail)
    VALUES ($cedula,$nombre,$dir,$telefono,$institucion, $pro, $cat, $email )"
;
}
 else {
echo 
"Rellena los campos";
echo 
"<br>";
echo 
$cedula ;
echo 
"<br>";
echo 
$nombre;
echo 
"<br>";
echo 
$dir;
echo 
"<br>";
echo 
$telefono;
echo 
"<br>";
echo 
$institucion;
echo 
"<br>";
echo 
$pro;
echo 
"<br>";
echo 
$cat;
echo 
"<br>";
echo 
$email;
}

?>
agradezco de antemano, estoy estresado por eso

saludo
  #2 (permalink)  
Antiguo 07/12/2008, 21:20
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Capturar Dato de la lista desplegable dinamica

No le estás asignando un value a las opciones. Debe ser <option value="valor">, así, el dato que recibarás es el value (valor) de la opción seleccionada.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 07/12/2008, 21:35
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Capturar Dato de la lista desplegable dinamica

cierto
pero que pondria algo como
Código PHP:
<option value=<?$cat ?> </option>
y en el registar.php
como pasaria?

pd: gracias por responder
  #4 (permalink)  
Antiguo 07/12/2008, 21:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Capturar Dato de la lista desplegable dinamica

hola, primero... que sea PHP/HTML valido!

Código HTML:
<option value="<?php echo $foo; ?>">bar</option> 
luego....

variables a través de un formulario, ya consultaste el manual ???

Variables Externas
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/12/2008, 21:50
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Capturar Dato de la lista desplegable dinamica

quetal como estas yo lo hago de la sgte manera

$datos=mysql_query("select nombre_cargo from cargo");

if(mysql_num_rows($datos)>0)
{
$s=1;
echo "<td>seleccione un cargo</td>";
echo "<td><select name=\"cargos\">";
while($row=mysql_fetch_array($datos))
{

echo "<option value=\"$s\">".$row['nombre_cargo']."</option>";
$s++;
}
echo "</select></td>";


}
y lo proceso en otra pagina asi

$cargo=$_REQUEST['cargos'];

el problema que tu tienes como dice david el grande es en el value no le asignas nada

espero te sirva
  #6 (permalink)  
Antiguo 07/12/2008, 22:46
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Capturar Dato de la lista desplegable dinamica

eh acoevil parece que el codigo que me diste si funciona gracias!! :D pero ahora veo que no me inserta los datos a la tabla :(
aparece el mensaje que se registro correctamente pero cuando veo la tabla nada de nada :S

Código PHP:
registrar.php
<?    
$capa
=$_REQUEST['capacitacion'];
if (
$_REQUEST['programa']=="Electro")
  {
 
$pro="Electronica";
  }
  else if (
$_REQUEST['programa']=="tele")
    {
    
$pro="Telecomunicaciones";
    }
 
  else if (
$_REQUEST['programa']=="info")
    {
       
$pro="Informatica";
    }
 

         
if (isset(
$cedula,$nombre,$dir,$telefono,$institucion,$pro$capa$email)) 
{        
include
"conexion.php";     
$savemysql_query("INSERT INTO  `proyecto`.`inscritos` (Cedula, Nombre, Direccion, Telefono, Institucion, Programa, Capacitacion, E-mail) VALUES ($cedula,$nombre,$dir,$telefono,$institucion, $pro, '$_POST[categoria]', $email )"$conexion);
echo 
"se agrego los datos satisfactiamente";
echo 
"<a href='index.html'>regresar</a>";
}
 else {
echo 
"Rellena los campos";
echo 
"<br>";
echo 
$cedula ;
echo 
"<br>";
echo 
$nombre;
echo 
"<br>";
echo 
$dir;
echo 
"<br>";
echo 
$telefono;
echo 
"<br>";
echo 
$institucion;
echo 
"<br>";
echo 
$pro;
echo 
"<br>";
echo 
$cat;
echo 
"<br>";
echo 
$email;
echo 
"<br>";

}

?>
la pagina de registro

Código PHP:
 <?
    
        $con 
mysql_query("SELECT nom_curso FROM curso ORDER BY id_curso");
        if(
mysql_num_rows($con)>0)
        
$sukea=1;
        echo 
"<select name=\"capacitacion\">";
        while(
$row mysql_fetch_array($con))
        {
        echo 
"<option value=\"$sukea\">".$row['nom_curso']."</option>";
        
$sukea++;
      }
      echo 
"</select>";
?>
  #7 (permalink)  
Antiguo 07/12/2008, 22:54
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Capturar Dato de la lista desplegable dinamica

hola... (como siempre) intenta usar or die (mysql_error()); para depurar tu consulta... de veras!

Código PHP:
mysql_query(/* SQL */) or die(mysql_error()); 
(si un error ocurre, esto te avisará lo que sucedió con tu consulta de SQL)

espero te ayude, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 07/12/2008, 22:56
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Capturar Dato de la lista desplegable dinamica

creo que es porque no tienes en cuenta que si almacenas con value=\"$sukea\" almacenarias solo un numero y es lo que verias en tu DB creo que en value tienes que colocar el nom_curso logicamente con la sintaxis adecuada .
Intenta y me dices Salu2
  #9 (permalink)  
Antiguo 07/12/2008, 23:22
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Capturar Dato de la lista desplegable dinamica

Cita:
Iniciado por acoevil Ver Mensaje
creo que es porque no tienes en cuenta que si almacenas con value=\"$sukea\" almacenarias solo un numero y es lo que verias en tu DB creo que en value tienes que colocar el nom_curso logicamente con la sintaxis adecuada .
Intenta y me dices Salu2
Eh ahi el chiste no se como :(

ya que se supone que el campo que estoy referenciando en l base de datos es nom_curso, pero debo guardar uno de tantos valores que tienes


Cita:
Iniciado por pateketrueke Ver Mensaje
hola... (como siempre) intenta usar or die (mysql_error()); para depurar tu consulta... de veras!

Código PHP:
mysql_query(/* SQL */) or die(mysql_error()); 
(si un error ocurre, esto te avisará lo que sucedió con tu consulta de SQL)

espero te ayude, suerte!
otra novatada mia

bueno me aparece este error y como decia acoevil al parecer solo guarda el 1,que incializo y tmb hay un erros sobre el correo :/

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-mail) VALUES (1045674720,Kevin Buitrago1,Clle 50 # 38-103,3723515,ITSA, Informa' at line 1

que podra hacer :S
  #10 (permalink)  
Antiguo 08/12/2008, 00:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Capturar Dato de la lista desplegable dinamica

bueno, un curso sencillo de PHP y MySQL no te haría mal...

luego, las consultas.... eso, los tipos de datos

si son INT (enteros, flotantes, etc.) deben colocarse sin comillas,
caso contrario con VARCHAR (cadenas, chars, blob, etc.) que deben colocarse en comillas....

ejemplo
Código:
INSERT INTO foo(col1,col2) VALUES('bar', 1.2, 1, NULL) WHER nick='candy' OR num=123
osea, en principio.... debes leer algo sobre los tipos de dato en SQL, como se insertan, escapan, etc, etc....


recuerda que PHP es una cosa, y SQL es otra... un lenguaje distinto... necesitas aprender SQL !!! ?

espero comprendas, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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




La zona horaria es GMT -6. Ahora son las 10:06.