Foros del Web » Programando para Internet » PHP »

update sencillo con combo! problema:S

Estas en el tema de update sencillo con combo! problema:S en el foro de PHP en Foros del Web. Hola a todos! Espero no se note lo principiante que soy ja!!! Tengo lo siguiente: <?php //tengo el color inicial de la fila y ademas ...
  #1 (permalink)  
Antiguo 22/07/2008, 16:48
 
Fecha de Ingreso: julio-2008
Mensajes: 5
Antigüedad: 15 años, 9 meses
Puntos: 0
update sencillo con combo! problema:S

Hola a todos! Espero no se note lo principiante que soy ja!!!

Tengo lo siguiente:

<?php
//tengo el color inicial de la fila y ademas hago el while que se ejecutara segun el numero de filas que hay en la base de datos
$color="FFFFFF";
while($resp_assoc = mysql_fetch_assoc($resp_consulta)){?>
<tr>
<td bgcolor="#<?php echo $color;?>" class="style1"><?php echo($resp_assoc['numero_lote']) ?></td>
<td bgcolor="#<?php echo $color;?>" class="style1"><select name="NO SE QUE PONER ACA">

<?php if($resp_assoc['estado']=="disponible"){?>
<option value="vendido">Lote vendido</option><option value="construido">Casas construidas</option><option value="disponible" selected>Lote disponible</option>
<?php }else if($resp_assoc['estado']=="vendido"){?>
<option value="vendido" selected>Lote vendido</option><option value="construido">Casas construidas</option><option value="disponible">Lote disponible</option>
<?php }else if($resp_assoc['estado']=="construido"){?>
<option value="vendido">Lote vendido</option><option value="construido" selected>Casas construidas</option><option value="disponible">Lote disponible</option>
<?php }?>
</select></td>
</tr>

<?php
//cambia el color de cada fila, una blanca una gris...y asi
if($color=="FFFFFF"){
$color = "CCCCCC";
}else{
$color="FFFFFF";
}
}?>

Esto me genera una tabla con 2 columnas, una que muestra el nombre del lote, y en la otra columna un combo box con tres opciones: "Casas construidas", "Lote disponible" y "Lote vendido"....el numero de filas de esta tabla es en base al numero de filas que hay en la base de datos...eso funciona bien. La idea es que el cliente que quiere administrar esto...seleccione en cada combo box si el lote ya lo vendio o si esta disponible bla bla...al terminar de seleccionar todos los combos que quiera va a enviar el formulario que me va a hacer el UPDATE correspondiente en la base de datos...

El problema esta en que yo necesito relacionar el nombre del combo box segun el lote....para que envie el nombre de la combo por medio de POST y en la instruccion "UPDATE nombre tabla SET estado='.....' tome cada combo box segun el lote....la solucion debe ser sencillisima pero lo he intentado por todo lado capaz que tenga algun despiste y no logre hacerlo....!!!

PISTA: En la base de datos tambien cada lote tiene un id......que es la clave primaria y es auto_incremento ademas....no se si por ese lado se pueda utilizar en algo
  #2 (permalink)  
Antiguo 22/07/2008, 17:03
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: update sencillo con combo! problema:S

Vamos a ver, el IF que has hecho es una bestialidad,te estás haciendo la picha un lio

<select name="NO SE QUE PONER ACA"> = <select name="seleccion" id="seleccion" >

esto hará que en el formulario ese combo se llame "seleccion"

para recoger lo que el usuario ha seleccionado usa:
$_post['seleccion'];
el formulario quedaría asi:

<select name="seleccion" id="seleccion" >
<option value="Casasconstruidas">Casas construidas</option>
<option value="Lotedisp">Lote disponible</option>
<option value="Lotevendido">Lote vendido</option>
</select>

y el php:
$var = $_post['seleccion'];
if( $var = "Casasconstruidas"){
bla bla
}
elseif($var = "Lotedisp"){
bla bla
}
elseif($var = "Lotevendido"){
bla bla
}
  #3 (permalink)  
Antiguo 22/07/2008, 17:09
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: update sencillo con combo! problema:S

Holas vladov2d, y bienvenido

Para poder manejar estos combos, que se generan dinámicamente, o sea, que la cantidad puede variar, puedes tomar estas 2 opciones (seguro hay más, pero estas son las que te muestro yo ^^):

1) Ponerle a todos los combos el mismo nombre, de modo de manejarlos como un arreglo. Ahora bien, con eso inicialmente perderías el ID de cada lote, para eso puedes guardar en un campo oculto (hidden) la lista de IDs en el mismo orden en que están los combos (que en html se respetará siempre). Creo que quedaría algo así:

Código HTML:
 <!-- En este ejemplo he obviado la tabla -->
 <!-- Lote id #1, corresponde a id_lote[0] -->
 <select name="id_lote">
  <option value="vendido">Lote vendido</option>
  <option value="construido">Casas construidas</option>
  <option value="disponible" selected>Lote disponible</option>
 </select>

 <!-- Lote id #25, corresponde a id_lote[1] -->
 <select name="id_lote">
  <option value="vendido">Lote vendido</option>
  <option value="construido" selected>Casas construidas</option>
  <option value="disponible">Lote disponible</option>
 </select>

 <!-- aqui mas lotes... -->

 <!-- aqui guardas los IDs de lotes, en estricto orden, 
        para que se correspondan con el arreglo id_lote -->
 <input type="hidden" name="lista_lotes" value="1;25;42"> 
Luego para leer estos datos, pues lo haces desde el php que recibe el $_POST...

2) Otra opción es que nombres a cada select con el ID del lote. Pero luego tendrías que hacer minería con los valores recibidos, con los nombres de las variables, etc. en el php que recibirá los $_POST, para poder entender lo que se recibió x_x

Código HTML:
 <!-- En este ejemplo he obviado la tabla -->
 <!-- Lote id #1 -->
 <select name="lote_1">
  <option value="vendido">Lote vendido</option>
  <option value="construido">Casas construidas</option>
  <option value="disponible" selected>Lote disponible</option>
 </select>

 <!-- Lote id #25 -->
 <select name="lote_25">
  <option value="vendido">Lote vendido</option>
  <option value="construido" selected>Casas construidas</option>
  <option value="disponible">Lote disponible</option>
 </select>

 <!-- aqui mas lotes... --> 
La verdad, estas sugerencias quizá no te ayuden directamente, pero al menos te puede dar luces de otras posibilidades de cómo tomar el problema O_o (sorry, hasta yo encuentro engañoso tu dilema, el que a primeras pareciera simple...)

Editado:
Me demoré años en terminar mi post y ya había una respuesta ^^. Espero que con ambas te puedas guiar un poco más :)
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
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 03:35.