Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/02/2007, 12:19
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 1 mes
Puntos: 11
Re: validacion sin perder informacion en php

Bueno, al trabajar con los combobox deberias hacer algo como lo siguiente, dependiendo del medio donde estes almacenando los elementos a listar en el combobox (base de datos o quemados a mano, si es este ultimo deberias de asignar tus elementos del select en un array). ademas para seleccionar el valor guardado en la base de datos deberias de tener un query para seleccionar el listado de elementos y otro query que es el que previamente selecciono el usuario.

Si extraes tus opciones de una base de datos deberia ser algo asi:

Código PHP:
<?php
// aqui hice la solicitud de mis datos para el select a la base de datos, y el select de la opcion previamente seleccionada por el usuario.
// luego viene el while que los desplegara. y en algun medio debo tener el valor contra el que comparare mis elementos del select.

echo '<select name="procountryres"  class="form-fields" id="procountryres">';

while(
$cntries mysql_fetch_object($exec_ctry)){


// $cntries->country_id es igual al listado de elementos con los que alimento mi select.
// $all_personal['pro_country'] es igual a la opcion seleccionada previamente por el usuario y que estaba guardada en la base de datos.

if($cntries->country_id == $all_personal['pro_country']){ 

echo(
"<option value=\"$cntries->country_id\" selected=\"selected\">$cntries->country_name</option>\n");
}else{
echo(
"<option value=\"$cntries->country_id\">$cntries->country_name</option>\n");
                       }
                      }

echo 
'</select>';
                      
?>

ahora si los datos de tu option estan quemados a mano (que no los traes de la base de datos sino que los imprimes directamente en tu option seria algo asi:

Código PHP:
 <?php
$via 
= array('phone','email','both'); // array con los valores a aplicar al atributo value del option.

$via1 = array('Phone','e-mail','Both'); // array con los valores a desplegar entre las etiquetas <option>$via1</option>

echo '<select name="procomvia" class="form-fields" id="procomvia">';

// $all_personal['pro_com_via'] es igual al valor almacenado en la base de datos seleccionado previamente por el usuario.

for($x=0;$x<count($via);$x++){

if(
$via[$x] == $all_personal['pro_com_via']){

echo(
"<option value=\"$via[$x]\" selected=\"selected\">$via1[$x]</option>");

}else{

echo(
"<option value=\"$via[$x]\">$via1[$x]</option>");

        }
        }
echo 
'</select>';
     
?>
en la primera utilice mysql_fetch_object()y en la segunda mysql_fetch_array()


eso seria. espero entiendas la idea. Y si los datos necesitas compararlos con una variable de session solo cambia (en el ultimo ejemplo) $all_personal['pro_com_via'] por el nombre de la variable de session y su nombre de campo respectivo.

un saludo.
__________________
http://dev.wsnetcorp.com