Foros del Web » Programando para Internet » PHP »

Formulario que envía ID en vez del NAME

Estas en el tema de Formulario que envía ID en vez del NAME en el foro de PHP en Foros del Web. Hola! Comienzo con una frase poco dicha por aquí...jejeje: "soy nuevo en el foro..." , pero es que es verdad. Bueno, al tema. Tengo un ...
  #1 (permalink)  
Antiguo 19/01/2014, 11:54
 
Fecha de Ingreso: enero-2014
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Pregunta Formulario que envía ID en vez del NAME

Hola!

Comienzo con una frase poco dicha por aquí...jejeje: "soy nuevo en el foro..." , pero es que es verdad.

Bueno, al tema. Tengo un formulario donde quiero introducir a través de selects dependientes la comunidad, provincia y localidad en una base de datos. Para ello tengo el siguiente código php, pero no sé porqué me guarda en la base de datos los ID de las filas en vez de el nombre de la comunidad, provincia o localidad. Llevo muchos días intentándolo, por favor.... AYÚDENME!!!

MUCHAS GRACIAS!!!!

<?php

class selects extends MySQL
{
var $code = "";

function cargarComunidades()
{
$consulta = parent::consulta("SELECT nombre,com_id FROM comunidad ORDER BY nombre ASC");
$num_total_registros = parent::num_rows($consulta);
if($num_total_registros>0)
{
$comunidades = array();
while($comunidad = parent::fetch_assoc($consulta))
{
$code = $comunidad["com_id"];
$name = $comunidad["nombre"];
$comunidades[$code]=$name;
}
return $comunidades;
}
else
{
return false;
}
}
function cargarProvincias()
{
$consulta = parent::consulta("SELECT nombre,prov_id FROM provincia WHERE com_id = '".$this->code."'");
$num_total_registros = parent::num_rows($consulta);
if($num_total_registros>0)
{
$provincias = array();
while($provincia = parent::fetch_assoc($consulta))
{
$code = $provincia["prov_id"];
$name = $provincia["nombre"];
$provincias[$code]=$name;
}
return $provincias;
}
else
{
return false;
}
}

function cargarLocalidades()
{
$consulta = parent::consulta("SELECT nombre,loc_id FROM localidad WHERE prov_id = '".$this->code."'");
$num_total_registros = parent::num_rows($consulta);
if($num_total_registros>0)
{
$localidades = array();
while($localidad = parent::fetch_assoc($consulta))
{
$code = $localidad["loc_id"];
$name = $localidad["nombre"];
$localidades[$code]=$name;
}
return $localidades;
}
else
{
return false;
}
}
}
?>
  #2 (permalink)  
Antiguo 19/01/2014, 12:23
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Formulario que envía ID en vez del NAME

Esas consultas solamente listas datos de la tabla, ninguna los inserta. Muéstranos los INSERT para ver en qué estás fallando y así podamos ayudarte.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 19/01/2014, 12:37
 
Fecha de Ingreso: enero-2014
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Formulario que envía ID en vez del NAME

El siguiente código lo tengo como un archivo html que forma parte de otra página a través de un INCLUDE, y es donde están los selects. Creo que es esto lo que me pides,no?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript" src="../spain/js/jquery-1.3.2.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
cargar_comunidades();
$("#comunidad").change(function(){dependencia_prov incia(); $("#localidad").attr("disabled",true);});
$("#provincia").change(function(){dependencia_loca lidad();});
$("#provincia").attr("disabled",true);
$("#localidad").attr("disabled",true);
});

function cargar_comunidades()
{
$.get("../spain/scripts/scripts/cargar-comunidades.php", function(resultado){
if(resultado == false)
{
alert("Error");
}
else
{
$('#comunidad').append(resultado);
}
});
}
function dependencia_provincia()
{
var code = $("#comunidad").val();
$.get("../spain/scripts/scripts/dependencia-provincias.php", { code: code },
function(resultado)
{
if(resultado == false)
{
alert("Error");
}
else
{
$("#provincia").attr("disabled",false);
document.getElementById("provincia").options.lengt h=1;
$('#provincia').append(resultado);
}
}

);
}

function dependencia_localidad()
{
var code = $("#provincia").val();
$.get("../spain/scripts/scripts/dependencia-localidades.php?", { code: code }, function(resultado){
if(resultado == false)
{
alert("Error");
}
else
{
$("#localidad").attr("disabled",false);
document.getElementById("localidad").options.lengt h=1;
$('#localidad').append(resultado);
}
});

}
</script>

</head>
<body>



<dl>
<dt>Ubicaci&oacute;n:</dt>

<dd>Comunidad:</dd>
<dd>
<select name="ccaa" id="comunidad">
<option value="0">Selecciona una...</option>
</select>
</dd>

<dd>Provincia:</dd>
<dd>
<select name="provincia" id="provincia">
<option value="0">Selecciona una...</option>
</select>
</dd>

<dd>Localidad:</dd>
<dd>
<select name="localidad" id="localidad">
<option value="0">Selecciona una...</option>
</select>
</dd>
</dl>




</body>
</html>
  #4 (permalink)  
Antiguo 19/01/2014, 13:40
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Formulario que envía ID en vez del NAME

No, a lo que me refiero es a sentencias como INSERT INTO tabla (campo1, campo2) VALUES (valor1, valor2). Solamente veo SELECT y con eso no insertas datos en la BD. Si dices esto:

Cita:
Iniciado por aproximo Ver Mensaje
no sé porqué me guarda en la base de datos los ID de las filas en vez de el nombre de la comunidad, provincia o localidad
Es porque algo debe andar mal en tus INSERT.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 20/01/2014, 02:35
 
Fecha de Ingreso: enero-2014
Mensajes: 6
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: Formulario que envía ID en vez del NAME

PERDONA, ahora te entiendo. Aquí lo tienes:

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO aperturas (categoria, subcategoria, name, descrip, date_dia, date_mes, date_ano, ccaa, provincia, localidad, calle, numero, piso, letra, antes, usuario) VALUES (%s,%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['categoria'], "text"),
GetSQLValueString($_POST['subcategoria'], "text"),
GetSQLValueString($_POST['name'], "text"),
GetSQLValueString($_POST['descrip'], "text"),
GetSQLValueString($_POST['date_dia'], "text"),
GetSQLValueString($_POST['date_mes'], "text"),
GetSQLValueString($_POST['date_ano'], "text"),
GetSQLValueString($_POST['ccaa'], "text"),
GetSQLValueString($_POST['provincia'], "text"),
GetSQLValueString($_POST['localidad'], "text"),

GetSQLValueString($_POST['calle'], "text"),
GetSQLValueString($_POST['numero'], "text"),
GetSQLValueString($_POST['piso'], "text"),
GetSQLValueString($_POST['letra'], "text"),
GetSQLValueString($_POST['antes'], "text"),
GetSQLValueString($_POST['usuario'], "text"));
  #6 (permalink)  
Antiguo 20/01/2014, 10:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Formulario que envía ID en vez del NAME

Solo para verificar, imprime los valores de esas tres variables que resaltas en rojo y corrobora que sean los valores que contienen los campos del archivo anterior, además, verifica que no hayan otros elementos con el mismo nombre de dichos campos.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: formulario
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 23:20.