Foros del Web » Programando para Internet » PHP »

Problema combobox

Estas en el tema de Problema combobox en el foro de PHP en Foros del Web. Buenos días a todos, necesito ayuda pues estoy estancado con un problema de codigo. He creado dos menus desplegables; provincias y municipios pero me surge ...
  #1 (permalink)  
Antiguo 07/10/2009, 01:52
 
Fecha de Ingreso: junio-2009
Mensajes: 134
Antigüedad: 14 años, 10 meses
Puntos: 0
Problema combobox

Buenos días a todos, necesito ayuda pues estoy estancado con un problema de codigo. He creado dos menus desplegables; provincias y municipios pero me surge un problema, todo funciona bien, quiero decir que cuando eliges una provincia sale en el otro listado los municipios de la misma pero me da un error, le spongo el codigo y el error que me da cuando veo en el navegador el formulario:

<form id="form1" name="form1" method="post" action="">
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>
<label for="provincias">Elige una provincia: </label>
<select name="provincias" id="provincias" onChange="submit()">
<option value="" <?php if (!(strcmp("", $_POST['prov_id']))) {echo "selected=\"selected\"";} ?>></option>
<?php
do {
?>
<option value="<?php echo $row_provincias['prov_id']?>"<?php if (!(strcmp($row_provincias['prov_id'], $_POST['prov_id']))) {echo "selected=\"selected\"";} ?>><?php echo $row_provincias['provincia']?></option>
<?php
} while ($row_provincias = mysql_fetch_assoc($provincias));
$rows = mysql_num_rows($provincias);
if($rows > 0) {
mysql_data_seek($provincias, 0);
$row_provincias = mysql_fetch_assoc($provincias);
}
?>
</select>
</p>
<p>
<label for="municipios">Y ahora un Municipio: </label>
<select name="municipios" id="municipios" onChange="submit()">
<option value="" <?php if (!(strcmp("", $_POST['muni_id']))) {echo "selected=\"selected\"";} ?>></option>
<?php
do {
?>
<option value="<?php echo $row_municipios['muni_id']?>"<?php if (!(strcmp($row_municipios['muni_id'], $_POST['muni_id']))) {echo "selected=\"selected\"";} ?>><?php echo $row_municipios['municipio']?></option>
<?php
} while ($row_municipios = mysql_fetch_assoc($municipios));
$rows = mysql_num_rows($municipios);
if($rows > 0) {
mysql_data_seek($municipios, 0);
$row_municipios = mysql_fetch_assoc($municipios);
}
?>
</select>
</p>

He remarcado en rojo donde me da el error y ahora les copio del mensaje en el listado cuando está en el navegador:

Notice: Undefined index: prov_id in C:.... formu_agencias.php on line 68 selected="selected">

Os agradecería mucho vuestra ayuda es mi primer proyecto en php y la verdad que me he quedado estancado con esto. Gracias.
  #2 (permalink)  
Antiguo 07/10/2009, 05:31
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: Problema combobox

te esta diciendo que no esta encontrando el indice de la variable proba haciendo un print_r a $_POST y a $row_provincias para ver si prov_id esta definido
  #3 (permalink)  
Antiguo 07/10/2009, 06:02
 
Fecha de Ingreso: junio-2009
Mensajes: 134
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema combobox

Gracias por contestar, pero necesitaria saber como aplicar el print_r pues lo hago todo con dreamweaver y estoy en mi primer proyecto.
  #4 (permalink)  
Antiguo 07/10/2009, 06:05
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Cita:
Iniciado por machtcom Ver Mensaje
¿nadie me puede ayudar?

El asunto aqui es que tienes un pequeno problema de logica en la manera en que aplicas el do..while recuerda que el do..while primero ejecuta el do y luego lo que esta en el while
por lo que : prov_id al principio no va a tener ningun valor e intenta imprimir la variable vacia.
Si vas a continuar utilizando el do .. while verifica primero si la variable esta definida
con la funcion isset

Código php:
Ver original
  1. (isset($row_provincias['prov_id']))?....:....

Mas info de do while.
http://www.desarrolloweb.com/articulos/567.php

Cita:
Iniciado por machtcom Ver Mensaje
Gracias por contestar, pero necesitaria saber como aplicar el print_r pues lo hago todo con dreamweaver y estoy en mi primer proyecto.
http://www.phpwelt.net/handbuecher/s...n.print-r.html

Última edición por GatorV; 07/10/2009 a las 09:22
  #5 (permalink)  
Antiguo 07/10/2009, 06:14
 
Fecha de Ingreso: junio-2009
Mensajes: 134
Antigüedad: 14 años, 10 meses
Puntos: 0
Gracias, lo he hecho con provincias y me sale bien, pero en municipios me sigue dando error. ¿Tengo que aplicar lo mismo con minicipios?

Muy bueno phpwelt... tendré que empollar un poco... la verdad que es muy comodo dreamweaver, pero no me entero nada de lo que voy haciendo...

Última edición por GatorV; 07/10/2009 a las 09:22
  #6 (permalink)  
Antiguo 07/10/2009, 06:20
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Cita:
Iniciado por machtcom Ver Mensaje
Gracias, lo he hecho con provincias y me sale bien, pero en municipios me sigue dando error. ¿Tengo que aplicar lo mismo con minicipios?
Claro en todo los lugares que uses el do..while

Cita:
Iniciado por machtcom Ver Mensaje
Muy bueno phpwelt... tendré que empollar un poco... la verdad que es muy comodo dreamweaver, pero no me entero nada de lo que voy haciendo...
dreamweaver es muy buen editor.
Yo trabajo con dreamweaver pero en la modalida de Codigo llevo el control de todo lo que hago intenta hacerlo tu tambien.

Última edición por GatorV; 07/10/2009 a las 09:23
  #7 (permalink)  
Antiguo 07/10/2009, 06:31
 
Fecha de Ingreso: junio-2009
Mensajes: 134
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema combobox

Pues tio, no hay manera, me da bien con provincias pero con municipios me sigue dando error.

<label for="municipios">Y ahora un Municipio: </label>
<select name="municipios" id="municipios" onChange="submit()">
<option value="" <?php if (!(strcmp("", $_POST['muni_id']))) {echo "selected=\"selected\"";} ?>></option>
<?php
do {
?>
<option value="<?php echo $row_municipios['muni_id']?>"<?php if (!(isset($row_municipios['muni_id'], $_POST['muni_id']))) {echo "selected=\"selected\"";} ?>><?php echo $row_municipios['municipio']?></option>
<?php
} while ($row_municipios = mysql_fetch_assoc($municipios));
$rows = mysql_num_rows($municipios);
if($rows > 0) {
mysql_data_seek($municipios, 0);
$row_municipios = mysql_fetch_assoc($municipios);

¿es donde lo tengo que aplicar?
  #8 (permalink)  
Antiguo 07/10/2009, 06:48
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Problema combobox

La forma como se usa isset es

Código PHP:
Ver original
  1. $nombre = "Miguel";
  2. echo (isset($nombre)?$nombre:"Error");

Aplicalo en esta linea tambien

Código php:
Ver original
  1. <?php echo $row_municipios['municipio']?></option>
  #9 (permalink)  
Antiguo 07/10/2009, 06:58
 
Fecha de Ingreso: junio-2009
Mensajes: 134
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema combobox

<option value="<?php echo (isset($row_municipios['muni_id']?>"<?php if (!(isset($row_municipios['muni_id'], $_POST['muni_id']))) {echo "selected=\"selected\"";} ?>><?php echo $row_municipios['municipio']?></option>

Así lo he aplicado y no funciona...
  #10 (permalink)  
Antiguo 09/10/2009, 05:20
 
Fecha de Ingreso: junio-2009
Mensajes: 134
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Problema combobox

Hola, ya consigo que se vea todo bien, lo que no consigo es pasar de la seleccion de provincia, cuando eligo una, se carga el navegador y me deja la pagina en blanco. Ya no se a que se debe, si alguien me puede ayudar lo agradecería.

Les dejo parte del codigo del formulario.

<h1>Esto es una prueba de formulario provincias.</h1>
<p>&nbsp;</p>
<form action="<?php echo $editFormAction; ?>" method="POST" enctype="multipart/form-data" name="form1" id="form1">

<p>
<label for="nom_comercial">Nombre comercial:</label>
<input type="text" name="nom_comercial" id="nom_comercial" />
</p>
<p>
<label for="prov_id">Provincias</label>
<select name="prov_id" id="prov_id" onChange="submit()">
<option value="">provincia de...</option>
<?php
do {
?>
<option value="<?php echo $row_provincias['prov_id']?>"><?php echo $row_provincias['provincia']?></option>
<?php
} while ($row_provincias = mysql_fetch_assoc($provincias));
$rows = mysql_num_rows($provincias);
if($rows > 0) {
mysql_data_seek($provincias, 0);
$row_provincias = mysql_fetch_assoc($provincias);
}
?>
</select>
<label for="muni_id">Municipios</label>
<select name="muni_id" id="muni_id" onChange="submit()">
<?php
do {
?>
<option value="<?php echo $row_muni['muni_id']?>"><?php echo $row_muni['municipio']?></option>
<?php
} while ($row_muni = mysql_fetch_assoc($muni));
$rows = mysql_num_rows($muni);
if($rows > 0) {
mysql_data_seek($muni, 0);
$row_muni = mysql_fetch_assoc($muni);
}
?>
</select>
</p>
<p>
<label for="titulo_agencia">Titulo:</label>
<input name="titulo_agencia" type="text" id="titulo_agencia" size="65" />
</p>
<p>
<label for="desc_agencia">Descripción:</label>
<textarea name="desc_agencia" id="desc_agencia" cols="45" rows="5"></textarea>
</p>
<p>
<label for="tipostags_id">Palabras clave:</label>
<select name="tipostags_id" size="10" multiple="multiple" id="tipostags_id">
<?php
do {
?>
<option value="<?php echo $row_tags['tipostag_id']?>"><?php echo $row_tags['tipos']?></option>
<?php
} while ($row_tags = mysql_fetch_assoc($tags));
$rows = mysql_num_rows($tags);
if($rows > 0) {
mysql_data_seek($tags, 0);
$row_tags = mysql_fetch_assoc($tags);
}
?>
</select>
</p>
<p>
<label for="per_contacto">Persona de contacto</label>
<input name="per_contacto" type="text" id="per_contacto" size="20" />
</p>
<p>
<label for="nom_fiscal">Nombre fiscal:</label>
<input type="text" name="nom_fiscal" id="nom_fiscal" />
<label for="apellido_1">Apellido:</label>
<input type="text" name="apellido_1" id="apellido_1" />
<label for="apellido_2">2º Apellido</label>
<input type="text" name="apellido_2" id="apellido_2" />
<label for="nif">N.I.F:</label>
<input type="text" name="nif" id="nif" />
</p>
<p>
<label for="calle_fiscal">Calle:</label>
<input name="calle_fiscal" type="text" id="calle_fiscal" size="50" />
<label for="calle_num">nº:</label>
<input name="calle_num" type="text" id="calle_num" size="4" />
<label for="piso">Piso:</label>
<input name="piso" type="text" id="piso" size="4" />
<label for="puerta">Puerta:</label>
<input name="puerta" type="text" id="puerta" size="4" />
<label for="escalera">Escalera:</label>
<input name="escalera" type="text" id="escalera" size="4" />
<label for="cod_postal">C.P.:</label>
<input name="cod_postal" type="text" id="cod_postal" size="6" />
</p>
<p>
<label for="fijo_comercial">Telf. Comercial:</label>
<input name="fijo_comercial" type="text" id="fijo_comercial" size="9" />
<label for="fijo_contacto">Telf. Contacto:</label>
<input name="fijo_contacto" type="text" id="fijo_contacto" size="9" />
<label for="movil_comercial">Movil comercial:</label>
<input name="movil_comercial" type="text" id="movil_comercial" size="9" />
<label for="movil_contacto">Movil contacto:</label>
<input name="movil_contacto" type="text" id="movil_contacto" size="9" />
</p>
<p>
<label for="correo_comercial">Correo comercial:</label>
<input name="correo_comercial" type="text" id="correo_comercial" size="30" />
<label for="correo_contacto">Correo contacto:</label>
<input name="correo_contacto" type="text" id="correo_contacto" size="30" />
<label for="web">Página Web:</label>
<input name="web" type="text" id="web" size="25" />
</p>
<p>
<label for="desc_apartamentos">Descripción apartamentos:</label>
<textarea name="desc_apartamentos" id="desc_apartamentos" cols="45" rows="5"></textarea>
</p>
<p>
<label for="reservas">Reservas:</label>
<input type="text" name="reservas" id="reservas" />
</p>
<p>
<label for="pagos">Tipo de pago:</label>
<input type="text" name="pagos" id="pagos" />
</p>
<p>
<label for="banner728x90">Banner 728x90:</label>
<input type="file" name="banner728x90" id="banner728x90" />
<label for="banner300x218">Banner 300x218:</label>
<input type="file" name="banner300x218" id="banner300x218" />
<label for="logoagencia125x125">Logo 125x125:</label>
<input type="file" name="logoagencia125x125" id="logoagencia125x125" />
</p>
<p>
<label for="enviar"></label>
<input type="submit" name="enviar" id="enviar" value="Enviar datos" />
</p>
<input type="hidden" name="MM_insert" value="form1" />
</form>
</body>
</html>
<?php
mysql_free_result($provincias);

mysql_free_result($muni);

mysql_free_result($tags);
?>
  #11 (permalink)  
Antiguo 09/10/2009, 15:56
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Problema combobox

Hola
Que valor tiene $editFormAction?? imagino que el nombre del html o php en donde esta en ese momento, y si no tiene valor tal vez sea por eso que te deja en blanco la página
Nos comentas
saludos
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.