PHP - combos dependientes

   
Vista:

combos dependientes

Publicado por zendi (824 intervenciones) el 24/05/2015 22:16:48
Estoy creando este codigo para combos dependientes para localiazr tanto la estado, municipio y parroquia.
Pero no esta trayendo ni el municipio ni la parroquia.

Estas son las tablas:

CREATE TABLE estados
(
codigo character(2) NOT NULL DEFAULT ''::bpchar,
descripcion character varying(20) NOT NULL DEFAULT ''::character varying,
abreviatura character(2) NOT NULL DEFAULT ''::bpchar,
CONSTRAINT estados_pkey PRIMARY KEY (codigo)
)

CREATE TABLE municipios
(
cod_ent character(2) NOT NULL DEFAULT ''::bpchar,
codigo character(2) NOT NULL DEFAULT ''::bpchar,
descripcion character varying(30) NOT NULL DEFAULT ''::character varying,
CONSTRAINT municipios_pkey PRIMARY KEY (cod_ent, codigo),
CONSTRAINT municipios_cod_ent_fkey FOREIGN KEY (cod_ent)
REFERENCES estados (codigo) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)

CREATE TABLE parroquias
(
cod_ent character(2) NOT NULL DEFAULT ''::bpchar,
cod_mun character(2) NOT NULL DEFAULT ''::bpchar,
codigo character(2) NOT NULL DEFAULT ''::bpchar,
descripcion character varying(40) NOT NULL DEFAULT ''::character varying,
CONSTRAINT parroquias_pkey PRIMARY KEY (cod_ent, cod_mun, codigo),
CONSTRAINT parroquias_cod_ent_fkey FOREIGN KEY (cod_ent, cod_mun)
REFERENCES municipios (cod_ent, codigo) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)


Por favor si pueden ayudarme.

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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?php
    session_start();
	$connect = pg_connect("host=localhost port=5432 dbname=pediatria user=postgres password=junct*.12");
    error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
    //Recuperacion de las variables convertidas en sesiones
    $edo=$_SESSION['edo2']=@$_REQUEST['edo'];
    $str = $edo;
    $edo =explode('|', $str, 2);
 
    $muni=$_SESSION['muni2']=@$_REQUEST['muni'];
    $str = $muni;
    $muni =explode('|', $str, 2);
 
    $parr=$_SESSION['parr2']=@$_REQUEST['parr'];
    $str = $parr;
    $parr =explode('|', $str, 2);
 
 
    ?>
 
    <form name="form1" >
 
    <?php
    //QUERY COMBO 1 ENTIDAD
    $query="SELECT * FROM estados";
    $res=pg_query($query);
    ?>
    <p>Elige un Estado:
    <select name="edo" onchange="this.form.submit()" >
    <?php
	    if($edo[0]!='')
	    { ?>
		<option value="<?php echo $edo[0]."|".$edo[1]; ?>"><?php echo $edo[1]; ?></option>
    <?php
	    }
		else
		{ ?>
        <option > Elige</option><?php }?>
    <?php
	while($row=pg_fetch_array($res))
        {
	?>
         <option value="<?php echo $row['codigo']."|".$row['descripcion']?>">
		  <?php echo htmlentities($row['descripcion']);?>
		 </option>
    <?php
        }
    ?>
    </select>
    </p>
 
    <p>
    <?php
    //QUERY COMBO 2 MUNICIPIO
    $query2="SELECT * FROM municipios WHERE cod_ent=$edo[0]";
    $res2=pg_query($query2);
    ?>
    Especifica Municipio
    <select name="muni" onchange="this.form.submit()">
    <?php if($muni[0]!='')
			  {
			  ?>
				<option value="<?php echo $muni[0]."|".$muni[1]; ?>"><?php echo $muni[1]; ?>
				</option><?php
			  }
		  else
			  {
			  ?>
				<option > Elige</option>
				<?php
			  }
				?>
    	<?php
		    while($row2=pg_fetch_array($res2))
                {
               ?>
                <option value="<?php echo $row2['cod_mun']."|".$row2['descripcion']?>">
				   <?php echo htmlentities($row2['descripcion']);?>
				</option>
				<?php
				}
				?>
    </select>
    </p>
 
    <p>
    <?php
    //QUERY COMBO 3 PARROQUIA
    $query3="SELECT * FROM parroquias WHERE cod_ent=$edo[0] and cod_mun=$muni[0]";
    $res3=pg_query($query3);
    ?>
    Especifica Parroquia
    <select name="parr" onchange="this.form.submit()">
    <?php
	if($parr[0]!='')
		{ ?>
			<option value="<?php echo $parr[0]; ?>"><?php echo $parr[1]; ?>
			</option>
			<?php
    	}
	else
   	    {
		  ?>
  		 <option > Elige</option>
		<?php
        }
			?>
    <?php
			while($row3=pg_fetch_array($res3))
				{
				?>
					<option value="<?php echo $row3['codigo']."|".$row3['descripcion']?>">
						<?php echo htmlentities($row3['descripcion']);?>
					</option>
				<?php
				}
			?>
    </select>
    </p>
 
    <p>
    <!--<input type="submit" name="enviar" value="Enviar" />-->br /><br />
    </p>
    </form>
 
    <p>Id Estado: <?php echo $edo[0];?><br />
    Id Municipio: <?php echo $muni[0];?><br />
    Id Parroquia: <?php echo $parr[0];?><br /><br />
 
 
    Estado: <?php echo $edo[1];?><br />
    Municipio: <?php echo $muni[1];?><br />
    Parroquia: <?php echo $parr[1];?>
    </p>
 
    <p>&nbsp;</p>
    <p>&nbsp;</p>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

combos dependientes

Publicado por xve (5519 intervenciones) el 25/05/2015 07:50:30
Hola Zendi, me cuesta un poco ver tu código, ya que no esta muy bien tabulado, pero lo que no entiendo es como estan relacionadas las tablas...

Exactamente porque pones en el value esto?
1
<option value="<?php echo $edo[0]."|".$edo[1]; ?>"><?php echo $edo[1]; ?></option>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

combos dependientes

Publicado por zendi (824 intervenciones) el 25/05/2015 15:20:33
Hola Xve, bueno era para probar la impresion de los codigos del estado municipio y parroquia con la funcion explode(). Pero ya lo removí.

En cuanto a las tablas tienen sus claves primarias y relaciones foraneas bien establecidas.
asi:
1
2
3
4
5
6
7
CONSTRAINT municipios_cod_ent_fkey FOREIGN KEY (cod_ent)
REFERENCES estados (codigo) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
 
CONSTRAINT parroquias_cod_ent_fkey FOREIGN KEY (cod_ent, cod_mun)
REFERENCES municipios (cod_ent, codigo) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE



y quedo de esta manera, pero aun asi sigue sin traer los valores para los combos municipio y parroquia.


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
<?php
    session_start();
	$connect = pg_connect("host=localhost port=5432 dbname=pediatria user=postgres password=movilnet");
    error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
    //Recuperacion de las variables convertidas en sesiones
    $edo=$_SESSION['edo2']=@$_REQUEST['edo'];
    $str = $edo;
//    $edo =explode('|', $str, 2);
 
    $muni=$_SESSION['muni2']=@$_REQUEST['muni'];
    $str = $muni;
//    $muni =explode('|', $str, 2);
 
    $parr=$_SESSION['parr2']=@$_REQUEST['parr'];
    $str = $parr;
//    $parr =explode('|', $str, 2);
 
 
    ?>
    <form name="form1" >
    <?php
    //QUERY COMBO 1 ENTIDAD
    $query="SELECT * FROM estados";
    $res=pg_query($query);
    ?>
    <p>Elige un Estado:
    <select name="edo" onchange="this.form.submit()" >
        <option > Elige</option>
    <?php
	while($row=pg_fetch_array($res))
        {
	?>
         <option value="<?php echo $row['codigo']."|".$row['descripcion']?>">
		  <?php echo htmlentities($row['descripcion']);?>
		 </option>
    <?php
        }
    ?>
    </select>
    </p>
 
    <p>
    <?php
    //QUERY COMBO 2 MUNICIPIO
    $query2="SELECT * FROM municipios WHERE cod_ent=$edo[0]";
    $res2=pg_query($query2);
    ?>
    Especifica Municipio
    <select name="muni" onchange="this.form.submit()">
				<option > Elige</option>
    	<?php
		    while($row2=pg_fetch_array($res2))
                {
               ?>
                <option value="<?php echo $row2['cod_mun']."|".$row2['descripcion']?>">
				   <?php echo htmlentities($row2['descripcion']);?>
				</option>
				<?php
				}
				?>
    </select>
    </p>
 
    <p>
    <?php
    //QUERY COMBO 3 PARROQUIA
    $query3="SELECT * FROM parroquias WHERE cod_ent=$edo[0] and cod_mun=$muni[0]";
    $res3=pg_query($query3);
    ?>
    Especifica Parroquia
    <select name="parr" onchange="this.form.submit()">
 
  		 <option > Elige</option>
    <?php
			while($row3=pg_fetch_array($res3))
				{
				?>
					<option value="<?php echo $row3['codigo']."|".$row3['descripcion']?>">
						<?php echo htmlentities($row3['descripcion']);?>
					</option>
				<?php
				}
			?>
    </select>
    </p>
 
    <p>
    <!--<input type="submit" name="enviar" value="Enviar" />-->br /><br />
    </p>
    </form>
 
 
    Estado: <?php echo $edo[1];?><br />
    Municipio: <?php echo $muni[1];?><br />
    Parroquia: <?php echo $parr[1];?>
    </p>
 
    <p>&nbsp;</p>
    <p>&nbsp;</p>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar