Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/02/2013, 10:46
deepdesign
 
Fecha de Ingreso: junio-2012
Ubicación: Santiago, Chile
Mensajes: 20
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Dato de función no guarda el dato en mysql

Cita:
Iniciado por Triby Ver Mensaje
1- Muestra el código de la función generaPaises()
2- Muestra también el código del script donde procesas el formulario
3- Haz un var_dump($_POST); en el script donde procesas el formulario para ver si están todos los datos que necesitas
Muchas gracias por responder. Este es el código:

Tengo un archivo php que genera la función para el select anidado:
Código PHP:
<?php
// Array que vincula los IDs de los selects declarados en el HTML con el nombre de la tabla donde se encuentra su contenido
$listadoSelects=array(
"paises"=>"lista_paises",
"estados"=>"jardines"
);

function 
validaSelect($selectDestino)
{
    
// Se valida que el select enviado via GET exista
    
global $listadoSelects;
    if(isset(
$listadoSelects[$selectDestino])) return true;
    else return 
false;
}

function 
validaOpcion($opcionSeleccionada)
{
    
// Se valida que la opcion seleccionada por el usuario en el select tenga un valor numerico
    
if(is_numeric($opcionSeleccionada)) return true;
    else return 
false;
}

$selectDestino=$_GET["select"]; $opcionSeleccionada=$_GET["opcion"];

if(
validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
{
    
$tabla=$listadoSelects[$selectDestino];
    include 
'conexion.php';
    
conectar();
    
$consulta=mysql_query("SELECT REGION, JARDIN FROM $tabla WHERE COD_REGION='$opcionSeleccionada'") or die(mysql_error());
    
desconectar();
    
    
// Comienzo a imprimir el select
    
echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
    echo 
"<option value='0'>Elige</option>";
    while(
$registro=mysql_fetch_row($consulta))
    {
        
// Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
        
$registro[1]=htmlentities($registro[1]);
        
// Imprimo las opciones del select
        
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
    }            
    echo 
"</select>";
}
?>

Luego, el el archivo.php que ingreso los datos tengo esta función:
Código PHP:
<?php
function generaPaises()
{
    include 
'conexion.php';
    
conectar();
    
$consulta=mysql_query("SELECT ID_REGION, REGION FROM region");
    
desconectar();

    
// Voy imprimiendo el primer select compuesto por los paises
    
echo "<select name='paises' id='paises' onChange='cargaContenido(this.id)'>";
    echo 
"<option value='0'>Elige</option>";
    while(
$registro=mysql_fetch_row($consulta))
    {
        echo 
"<option value='".$registro[0]."'>".$registro[1]."</option>";
    }
    echo 
"</select>";
    }
?>
Luego, en el campo de la tabla tengo este código que corresponde a la selección de región y jardín:
Código PHP:
<td nowrap="nowrap" align="right">REGION:</td>
                        <td><?php generaPaises(); ?></td>
                      </tr>
                      <tr valign="baseline">
                        <td nowrap="nowrap" align="right">JARDIN:</td>
                        <td>
              <select disabled="disabled" name="estados" id="estados">
                        <option value="0">Selecciona opci&oacute;n...</option>
                    </select>
                </td>
Y en el código del insert, tengo lo siguiente en la parte del envío de datos:
Código PHP:
GetSQLValueString($_POST['paises'], "text"),
                       
GetSQLValueString($_POST['estados'], "text"), 

El código original usa "paises" y "estados", pero no he cambiado esto, solo lo adapté para lo que necesito, que es "region", "jardin".

Espero no sea muy extenso. Muchas muchas gracias