Foros del Web » Programando para Internet » PHP »

Evitar perder datos, si algo no fue llenado correctamente en un formulario

Estas en el tema de Evitar perder datos, si algo no fue llenado correctamente en un formulario en el foro de PHP en Foros del Web. Hola a todos, pues bien tengo un formulario donde en el caso de que algo no haya sido llenado correctamente o falté algún dato indispensable ...
  #1 (permalink)  
Antiguo 03/09/2008, 04:29
Avatar de Simbelmyne  
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 2 meses
Puntos: 0
Evitar perder datos, si algo no fue llenado correctamente en un formulario

Hola a todos, pues bien tengo un formulario donde en el caso de que algo no haya sido llenado correctamente o falté algún dato indispensable pues le muestra un mensaje al usuario. Para ello lo que hago es en el campo de value poner el nombre de la variable que recoge los datos del control. El problema es que hay un menulist con el que si me lo hace (menulist 'medico') y en otro no (menulist 'paciente'), pese a que estoy utilizando el mismo codigo para ambos.

Agradeceria en vdd pudieran ayudarme

A continuacion el codigo con el que pretendo recuperar los datos, y con el que lleno asimismo el menulist. Cabe mencionar que una vez que me marca un msj en el menulist de 'medico' me toma el valor que habia seleccionado, pero en el de 'paciente' no lo respeta

Código HTML:
 <td width="237" nowrap="nowrap" class="Estilo2">
                    <div align="right">Nombre del Paciente:                </div></td>
                  <td width="365">
                    <select name="paciente" >
                    	<?php do {?>
                        	<option value = "<?php echo $pacientes['cvepaciente']?>" <?php if ($pacientes['cvepaciente'] == $paciente){echo "selected";}?>>
                            				 <?php echo $pacientes['paciente']?></option>
                                             <?php } while ($pacientes = mysql_fetch_assoc($paciente)); ?>
                    </select> </td>
                </tr>
                <tr>
                  <td><div align="right" nowrap="nowrap" class="Estilo2">Doctor (a): </div></td>
                  <td>
                    <select name="medico" >
                    	<?php do {?>
                        	<option value = "<?php echo $docs['cveempleado']?>" <?php if ($docs['cveempleado'] == $medico){echo "selected";}?>>
											 <?php echo $docs['doctor']?></option>
                             				 <?php } while ($docs = mysql_fetch_assoc($doc)); ?>
                    </select>                  
                   </td> 
A continuación el codigo donde realizo la evaluacion del contenido de cada campo, auqneu pienso que no afecta mucho en realidad...

Código PHP:
        $query_CitasAdded "SELECT cvecita FROM citas where (cvepaciente = '" $_POST['paciente'] . "' OR cveempleado = '" $_POST['medico'] . "') AND fecha_cita = '" $_POST['fecha_cita'] . "' AND cvehora = " $_POST['horas'];
        
$citasadded mysql_query($query_CitasAdded$central) or die(mysql_error());;
        
$CitasRepetidas mysql_num_rows($citasadded);

        
//Verificamos que los campos obligatorios hayan sido llenados
        
if (($_POST['paciente'] == '') || ($_POST['medico'] == '') || ($_POST['fecha_cita'] == '')){
        
$Verifica "Verifique que los campos marcados, hayan sido llenados";
        }
//En el caso de que la cita sea programada con una fecha anterior a la de hoy no se podrá guardar
        
elseif ($_POST['fecha_cita'] < date("d-m-Y")){
        
$Verifica "No puede programar una cita con fecha anterior al día de hoy";
        }elseif (
$CitasRepetidas>0){
        
//En el caso de que exista una cita para ese día con el mismo doctor deberá de notificarse, para que no se duplique
        
$Verifica "Verifique que el paciente o el doctor no tengan una cita activa a la misma hora";
        }
        else{
        
//Tomamos los valores
        
$cvepaciente $_POST['paciente']; 
        
$cveempleado $_POST['medico'];
        
$fecha_cita $_POST['fecha_cita'];
        
$hora_cita $_POST['horas'];
        
$fecha_reg date("Y-m-d H:m:s");
        
$observaciones $_POST['observ'] ;
        
$cvecatprod "";
        
$cveuser $cveemp;
        
$cveestatus "1";

        
//insertamos en la BD
        
$query_insert sprintf("insert into citas(cvepaciente, cveempleado, fecha_cita, cvehora, fec_reg, observaciones, cveproducto, cveuser, cveestatus) values('$cvepaciente', '$cveempleado', '$fecha_cita', '$hora_cita', '$fecha_reg', '$observaciones', '$cveproducto', '$cveuser', '$cveestatus')",                                                                                    GetSQLValueString($_POST['cvepaciente'], "int"),                                                      
                               
GetSQLValueString($_POST['cveempleado'], "int"),                                                   
                               
GetSQLValueString($_POST['fecha_cita'] , "int"),
                               
GetSQLValueString($_POST['hora_cita'] , "date"),
                               
GetSQLValueString($_POST['fecha_reg'] , "date"),                       
                               
GetSQLValueString($_POST['observaciones'], "text"),
                               
GetSQLValueString(''"text"),
                               
GetSQLValueString($cveemp"int"),
                               
GetSQLValueString(1"int"));
                               
          
mysql_select_db($database_central$central);
          
$Result mysql_query($query_insert$central) or die(mysql_error());
          
          
//en el caso de la consulta se haya ejecutado correctamente regresamos a la página de citas 
          
$insertGoTo "citas.php";
          if (isset(
$_SERVER['QUERY_STRING'])) {
            
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
            
$insertGoTo .= $_SERVER['QUERY_STRING'];
          } 
            echo 
"<script>";
            echo 
"location.replace(\"citas.php?day=" date("d") . "&month=" date("m") . "&year=" date("Y") . "\"); ";
            echo 
"</script>";
        } 
  #2 (permalink)  
Antiguo 03/09/2008, 04:50
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Evitar perder datos, si algo no fue llenado correctamente en un formulario

¿Dónde instancias las variables $paciente y $medico a la hora de montar el formulario?
  #3 (permalink)  
Antiguo 03/09/2008, 06:31
Avatar de Simbelmyne  
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Evitar perder datos, si algo no fue llenado correctamente en un formulario

hola Jerkan, en realidad si te refieres a que les de un valor en realidad no les asigno valor alguno, sino que al momento de que el usuario da click en el boton submit, las variables se llenan automáticamente con el valor del menulist, ya que segun entiendo la variable $paciente corresponde al valor de mi menulist denominado 'paciente'
  #4 (permalink)  
Antiguo 03/09/2008, 06:35
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Evitar perder datos, si algo no fue llenado correctamente en un formulario

Eso no no tiene por qué funcionar así. Depende de la configuración del PHP. Si la directiva register_globals está en on, entonces funcionará como dices. Si no, no.
Para mirar el valor de la directiva sólo tienes que utilizar la función phpinfo.
  #5 (permalink)  
Antiguo 03/09/2008, 06:42
Avatar de Simbelmyne  
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Evitar perder datos, si algo no fue llenado correctamente en un formulario

Así es Jerkan, el valor de register_globals lo tengo activado en on, y lo extraño del caso es que con un menulist me funciona bien pro con el otro no
  #6 (permalink)  
Antiguo 03/09/2008, 06:52
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Evitar perder datos, si algo no fue llenado correctamente en un formulario

puedes que cuando mandes el formulario y no tenga los datos correctos te vuelva a mandar automaticamente o por un boton con los valores en campos ocultos y en tu pagina de registro o lo q tengas tambien tengas para recibir esas variables que puedas agregar a tus campos.
me hice entender???
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #7 (permalink)  
Antiguo 03/09/2008, 06:55
Avatar de Simbelmyne  
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Evitar perder datos, si algo no fue llenado correctamente en un formulario

gracias Lobo_php, en realidad apenas estoy aprendiendo php, agradecería si me pudieras explicar un poco más
  #8 (permalink)  
Antiguo 03/09/2008, 07:06
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Evitar perder datos, si algo no fue llenado correctamente en un formulario

ok, en la pagina que estas haciendo el formulario trae por post las mismas variables que estas llenando en el formulario:
$nombre=$_POST['nombre']//por ejemplo
por que?? por si no son correctos los datos te vuelvan y te carguen ahi.
cuando le das clic en el boton submit te lleva a x pagina. en esa pagina tambien tomas los datos, los agregas a unos campos opcultos.
<input type=hidden name=nombre id=nombre value='nombre'>
y le metes un boton dentro de un formulario que te dirija a la pagina de antes osea la q te dije aqui arribita. como ya tienes cargadas otra ves las variables no tienes q hacer nada por q el las carga en los
<input type=text name=nombre id=nombre value=".$nombre.">
o si no los has decifinido arriba entonces:
<input type=text name=nombre id=nombre value=".$_POST['nombre'].">

entendiste?
sino dime te doi otro ejemplo.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #9 (permalink)  
Antiguo 03/09/2008, 07:15
Avatar de Simbelmyne  
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Evitar perder datos, si algo no fue llenado correctamente en un formulario

En realidad no me llevan a otra pagina todo lo estoy haciendo desde la misma, que es en el segundo codigo que puse
  #10 (permalink)  
Antiguo 03/09/2008, 07:32
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: Evitar perder datos, si algo no fue llenado correctamente en un formulario

no men no lo he hecho asi. para eso necesitarias ayuda de javascript, mejor hasle q vaya a otra pagina por q sino nunca te funcionara.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #11 (permalink)  
Antiguo 04/09/2008, 06:19
Avatar de Simbelmyne  
Fecha de Ingreso: febrero-2007
Mensajes: 33
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Evitar perder datos, si algo no fue llenado correctamente en un formulario

muchas gracias por sus respuestas :) ya me quedo, y en efecto funciona sobre el mismo formulario,y esta bien tambien el metodo utilizado, sólo que sin querer habia repertido mi variable en otro proceso sobre el formulario y por ello no mela tomaba
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:16.