Foros del Web » Programando para Internet » PHP »

mantener select

Estas en el tema de mantener select en el foro de PHP en Foros del Web. Hola maestros tengo una duda con lo siguiente, pasa que tengo este codigo php que mantiene el valor seleccionado de un select tras un refresh ...
  #1 (permalink)  
Antiguo 09/04/2014, 23:49
 
Fecha de Ingreso: marzo-2014
Mensajes: 7
Antigüedad: 10 años, 1 mes
Puntos: 0
Exclamación mantener select

Hola maestros tengo una duda con lo siguiente, pasa que tengo este codigo php que mantiene el valor seleccionado de un select tras un refresh a la pagina, todo funciona perfecto sin problemas, mi pregunta es...... PORQUE????

ya que sin el @ que se puede ver dentro del IF, me aparece el error de variable indefinida aludiendo como indefinida la variable "cambios"... mientras que agregando el @ no aparece el error en los select y por ende hace que el select funcione, bueno aqui el codigo:

Código PHP:
Ver original
  1. <select name="cambios" id="cambio">    
  2. <option value="SIN_CAMBIOS" <?php if(@ $_POST['cambios']=='SIN_CAMBIOS'){ echo "selected"; } ?>>SIN CAMBIOS</option>
  3. <option value="CAMBIO_MTC" <?php if(@ $_POST['cambios']=='CAMBIO_MTC'){ echo "selected"; } ?>>CAMBIO MTC</option>
  4. <option value="CAMBIO_TEL_SIM" <?php if(@ $_POST['cambios']=='CAMBIO_TEL_SIM'){ echo "selected"; } ?>>CAMBIO TEL Y SIM</option>
  5. <option value="CAMBIO_VAL1" <?php if(@ $_POST['cambios']=='CAMBIO_VAL1'){ echo "selected"; } ?>>CAMBIO VAL 1</option>
  6. <option value="CAMBIO_VAL2" <?php if(@ $_POST['cambios']=='CAMBIO_VAL2'){ echo "selected"; } ?>>CAMBIO VAL 2</option>
  7. <option value="CAMBIO_VAL_1_Y_2" <?php if(@ $_POST['cambios']=='CAMBIO_VAL_1_Y_2'){ echo "selected"; } ?>>CAMBIO VAL 1 Y 2</option>
  8. <option value="CAMBIO_CONSOLA" <?php if(@ $_POST['cambios']=='CAMBIO_CONSOLA'){ echo "selected"; } ?>>CAMBIO CONSOLA</option>
  9. </SELECT>
Espero que sirva y si alguien tiene una mejor forma porfavor que la indique, gracias.

Última edición por Triby; 10/04/2014 a las 01:06 Razón: Código en Highlight
  #2 (permalink)  
Antiguo 10/04/2014, 00:17
 
Fecha de Ingreso: octubre-2012
Mensajes: 135
Antigüedad: 11 años, 7 meses
Puntos: 8
Creo que tiene que haber otra parte de código, no tiene porque ser de php. El @ evita que muestre el error. No lo soluciona, pero lo oculta.
  #3 (permalink)  
Antiguo 10/04/2014, 01:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: mantener select

Cita:
Iniciado por botxii
Creo que tiene que haber otra parte de código, no tiene porque ser de php. El @ evita que muestre el error. No lo soluciona, pero lo oculta.
Cuando ingresas por primera vez a la página, es lógico que no exista la variable en $_POST, éstas se crean hasta que procesas el formulario.

Solución, crea una variable temporal, si se está procesando el formulario, asígnale el valor correspondiente, si no, entonces inicialízala:

Código PHP:
Ver original
  1. // La forma larga y tradicional
  2. if(isset($_POST['variable'])) {
  3.     $variable = $_POST['variable'];
  4. } else {
  5.     $variable = 'SIN_CAMBIOS';
  6. }
  7.  
  8. // La forma reducida, usando asignación ternaria:
  9. $variable = (isset($_POST['variable'])) ? $_POST['variable'] : '';

Luego, en las comparaciones de cada option, usas $variable en lugar de $_POST['variable']
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: select, 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:45.