Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Selectbox consulta Mysql varias columnas

Estas en el tema de Selectbox consulta Mysql varias columnas en el foro de PHP en Foros del Web. Saludos: Tengo un select box que captura los datos de una consulta filtrada, de modo que obtengo una sola fila con dos columnas. Una representa ...
  #1 (permalink)  
Antiguo 05/01/2015, 11:28
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 18 años, 4 meses
Puntos: 1
Selectbox consulta Mysql varias columnas

Saludos:

Tengo un select box que captura los datos de una consulta filtrada, de modo que obtengo una sola fila con dos columnas. Una representa el Id y la otra el nombre.
En el formulario sólo se visualiza la segunda.
Los campos del formulario estan en modo lectura.
Si quiero efectuar un cambio, tengo un boton que desactiva la opcion lectura y se hacen accesibles los inputs y el select.
Cuando hago las modificaciones activo la consulta de actualización. Hasta aquí todo va bien.
EL PROBLEMA:
Si "NO" hago ningún cambio en el select, ya que los cambios afectan a otros inputs, al hacer submit la función $_Post() envía la información de la SEGUNDA columna(el nombre [$fila['1']]), por lo que la tabla que contiene el campo vinculado no reconoce el valor y pone valor por defecto.
Por el contrario si hago un cambio en el select, envía el valor de la primera columna (el Id [$fila['0']]) y se actualiza correctamente la tabla.
Este es el codigo del select.

Código HTML:
<tr>
	<td>
	Apellidos:
	</td>
	<td>
	<select type= "" id="i1" class="tx"  disabled= "disabled" name="txtape" value="">
		<option  id="3"><?php echo $var3 ?></option>
		     <?php
			 while ($fila=mysql_fetch_row($resultape))
	                {echo "<option value='".$fila['0']."'>".$fila['1']."</option>";}
		?>
	</select>
	</td>
	</tr> 
Este es la información que recibe la variable que formará parte de la consulta de actualización:
Código PHP:
$ape=$_POST["txtape"]; 
No sé cual es la causa. Lo que quiero es que la función $_POST["txtape"] pase como valor la información de $fila['0'] y no la de $fila['1'], cuando no he producido ningún cambio en el select.

Gracias.
PD, no se en que etiqueta tengo que englovar el código para que tenga barra de desplazamiento y pueda leerse más facilmente.
  #2 (permalink)  
Antiguo 05/01/2015, 12:19
Avatar de acopantepuy  
Fecha de Ingreso: junio-2010
Ubicación: Caracas
Mensajes: 21
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Selectbox consulta Mysql varias columnas

Cambia el option:

Código HTML:
Ver original
  1. <option  id="3"><?php echo $var3 ?></option>

Por:

Código HTML:
Ver original
  1. <option  value="3"><?php echo $var3 ?></option>
  #3 (permalink)  
Antiguo 06/01/2015, 11:57
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: Selectbox consulta Mysql varias columnas

Hola:
Gracias por responder. Lo que me propones es asignar un valor por defecto, en este caso el número 3. Pero no soluciona el problema.
La idea es que el usuario quiera hacer modificaciones en el registro, y que esas modificaciones no afecten al campo Select, si no a otros campos del formulario.
Una vez realizados, el cliente acepta los cambios y lanza la consulta de actualización.
Pero como no ha modificado el campo select, en el $Post no hay ninguna variable y por lo tanto insertará el registro de la tabla con el valor por defecto "3" que le hemos asignado.
Lo que pretento es que, como los cambios no afectaban al valor del campo select, el valor siga siendo el mismo que tenía, por lo que el valor por defecto debería ser el que había en formulario.
Es decir no debería ser value="3", sino value= 'valor del select no modificado'.
Recuerda que extraía el valor de un array en la $fila['1'], desde una consulta con la condición where que viene dada por el valor de ese array en $fila['0']
Código PHP:
      <?php
             
while ($fila=mysql_fetch_row($resultape))
                    {echo 
"<option value='".$fila['0']."'>".$fila['1']."</option>";}
        
?>
Donde $resultape es una consulta a una tabla filtrada por el valor del campo vinculado en la tabla origen de los registros del formulario.
Gracias por tu atención de nuevo.
  #4 (permalink)  
Antiguo 06/01/2015, 14:38
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: Selectbox consulta Mysql varias columnas

Hola de nuevo:
Encontre la solución.
Resultado de la consulta filtrada por el campo vinculado de la tabla.
En lugar de trabajar con una sola variable, trabajo con dos.
La nueva variable recoge el valor del primer elemento del array.
La variable que ya existía recoge el segundo valor que son los apellidos.(Como antes)
En el select incluyo las dos variables:
La nueva como valor por defecto.
La antigua sigue siendo la option de value del select.

Código:
<select type= "" id="3" class="tx"  disabled= "disabled" name="txtape" value="">
	<option value= "<?php echo $var3id ?>"><?php echo $var3 ?></option>
	    <?php
		while ($fila=mysql_fetch_row($resultape))
			{
			echo "<option value='".$fila['0']."'>".$fila['1']."</option>";
			echo "<$var3id value='".$fila['0']."' ";
			}
	      ?>
</select>
Al final de la consulta que lanza la actualización asgno el valor de la variable pasada por el metodo $_post a la variable que recoge el valor por defecto:

Código:
$ape=$_POST["txtape"];

 $var3id = $ape;

acopantepuy Gracias por tu respuesta, hilo el pensamiento del resultado.
De nuevo gracias.

Etiquetas: columnas, formulario, mysql, select, selectbox, sql, tabla, variable
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 07:44.