
Formulario PHP envía ID en vez de NAME
Publicado por Aproximo (17 intervenciones) el 20/01/2014 21:11:43
Hola chic@s!!
Llevo días intentando buscar la solución a un problemilla que tengo y no sé cómo. Resulta que tengo un formulario que me envía los datos recogidos a una base MySql. Todos los selects o inputs que tengo me recogen correctamente los datos, pero hay un bloque que se refiere a recoger los datos mediante SELECTS DEPENDIENTES (dinámicos) de Comunidad Autónoma, Provincia y Localidad que me envía a la base de datos los ID (números) de las filas en vez del NAME (nombre de la autonomía, provincia o localidad).
Este código con los selects lo tengo como un include en otra página donde tengo el resto del formulario. Creo que el problema está en el archivo class.combos.php. Os paso los códigos que forman el bloque:
MUCHAS GRACIAS!!!
Código con los INSERT que tengo en el archivo donde está el include dirigiendo al archivo index de más abajo (a continuación de esto estaría el resto del código con el formulario, pero no lo pongo porque ya me extendería mucho).
Archivo index.php
Archivo class.combos.php CREO QUE AQUÍ ESTÁ EL PROBLEMA
Archivo cargar-comunidades.php
Archivo dependencia-provincias.php
Archivo dependencia-localidades.php
Archivo class.mysql.php
Llevo días intentando buscar la solución a un problemilla que tengo y no sé cómo. Resulta que tengo un formulario que me envía los datos recogidos a una base MySql. Todos los selects o inputs que tengo me recogen correctamente los datos, pero hay un bloque que se refiere a recoger los datos mediante SELECTS DEPENDIENTES (dinámicos) de Comunidad Autónoma, Provincia y Localidad que me envía a la base de datos los ID (números) de las filas en vez del NAME (nombre de la autonomía, provincia o localidad).
Este código con los selects lo tengo como un include en otra página donde tengo el resto del formulario. Creo que el problema está en el archivo class.combos.php. Os paso los códigos que forman el bloque:
MUCHAS GRACIAS!!!

Código con los INSERT que tengo en el archivo donde está el include dirigiendo al archivo index de más abajo (a continuación de esto estaría el resto del código con el formulario, pero no lo pongo porque ya me extendería mucho).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$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"));
mysql_select_db($database_Registro, $Registro);
$Result1 = mysql_query($insertSQL, $Registro) or die(mysql_error());
$insertGoTo = "usuarios/indexusuario.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
?>
Archivo index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<!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_provincia(); $("#localidad").attr("disabled",true);});
$("#provincia").change(function(){dependencia_localidad();});
$("#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.length=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.length=1;
$('#localidad').append(resultado);
}
});
}
</script>
</head>
<body>
<dl>
<dd>Comunidad:</dd>
<dd>
<select name="ccaa" id="comunidad">
<option value="0">ELIGE</option>
</select>
</dd>
<dd>Provincia:</dd>
<dd>
<select name="provincia" id="provincia">
<option value="0">ELIGE</option>
</select>
</dd>
<dd>Localidad:</dd>
<dd>
<select name="localidad" id="localidad">
<option value="0">ELIGE</option>
</select>
</dd>
</dl>
</body>
</html>
Archivo class.combos.php CREO QUE AQUÍ ESTÁ EL PROBLEMA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?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;
}
}
}
?>
Archivo cargar-comunidades.php
1
2
3
4
5
6
7
8
9
10
<?php
include("../clases/class.mysql.php");
include("../clases/class.combos.php");
$selects = new selects();
$comunidades = $selects->cargarComunidades();
foreach($comunidades as $key=>$value)
{
echo "<option value=\"$key\">$value</option>";
}
?>
Archivo dependencia-provincias.php
1
2
3
4
5
6
7
8
9
10
11
<?php
include("../clases/class.mysql.php");
include("../clases/class.combos.php");
$provincias = new selects();
$provincias->code = $_GET["code"];
$provincias = $provincias->cargarProvincias();
foreach($provincias as $key=>$value)
{
echo "<option value=\"$key\">$value</option>";
}
?>
Archivo dependencia-localidades.php
1
2
3
4
5
6
7
8
9
10
11
<?php
include("../clases/class.mysql.php");
include("../clases/class.combos.php");
$localidades = new selects();
$localidades->code = $_GET["code"];
$localidades = $localidades->cargarLocalidades();
foreach($localidades as $key=>$value)
{
echo "<option value=\"$key\">$value</option>";
}
?>
Archivo class.mysql.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
class MySQL
{
var $conexion;
function MySQL()
{
if(!isset($this->conexion))
{
$this->conexion = (mysql_connect('localhost', 'root', '')) or die(mysql_error());
mysql_select_db('base_datos',$this->conexion) or die(mysql_error());
}
}
function consulta($consulta)
{
$resultado = mysql_query($consulta,$this->conexion);
if(!$resultado)
{
echo 'MySQL Error: ' . mysql_error();
exit;
}
return $resultado;
}
function fetch_array($consulta)
{
return mysql_fetch_array($consulta);
}
function num_rows($consulta)
{
return mysql_num_rows($consulta);
}
function fetch_row($consulta)
{
return mysql_fetch_row($consulta);
}
function fetch_assoc($consulta)
{
return mysql_fetch_assoc($consulta);
}
}
?>
Valora esta pregunta


0