Foros del Web » Programando para Internet » Javascript »

Para crear una ventana..

Estas en el tema de Para crear una ventana.. en el foro de Javascript en Foros del Web. Buenos dias.. Deseo crear una ventana "emergente", en realidad no se si es emergente, pero quiero que cuando falte un dato por ingresar salga dicha ...
  #1 (permalink)  
Antiguo 02/08/2011, 09:26
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Mensaje Para crear una ventana..

Buenos dias..

Deseo crear una ventana "emergente", en realidad no se si es emergente, pero quiero que cuando falte un dato por ingresar salga dicha ventana diciendo que falta un dato..
espero hacerme entender.
Mil gracias de ante mano por sus respuestas.
__________________
Umm, infraccion :(//
  #2 (permalink)  
Antiguo 02/08/2011, 09:43
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Para crear una ventana..

Ok!.. acabo de leer que no se puede con php, entonces como haria para que cuando este en php y mire si el dato lo ingreso o no muestre una ventana hecha en java scrpt..??

Um, por favor, me podrian mandar al subforo conveniente..
__________________
Umm, infraccion :(//
  #3 (permalink)  
Antiguo 02/08/2011, 09:54
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Para crear una ventana..

Te doy la pista, estás hablando de validación de formularios.

La validación puede hacerse en dos momentos, según si quieres hacerlo en cliente o en servidor.

Para hacerlo en cliente necesitas JavaScript y este lenguage tiene una función precisamente para hacer lo que tú quieres, que se llama alert(). la cosa sería más o menos así:
Código Javascript:
Ver original
  1. function validateForm() {
  2.     // sacas valor
  3.     var campo = document.forms["nombre_del_form"]["campo"].value;
  4.  
  5.     var err = false;
  6.     var message = "Se han producido los siguientes errores:\n";
  7.    
  8.     // compruebas lo que quieras sobre ese valor (por ejemplo, que esté vacío)
  9.     if (...) {
  10.         message += "Campo campo no pasa la validación";
  11.         err = true;
  12.     }
  13.     // aquí puedes añadir tantas validaciones como quieras.
  14.    
  15.     // si hay error, lo imprimimos y devolvemos false. Si no, devolvemos true
  16.     if (err) {
  17.         alert(message);
  18.         return false;
  19.     } else {
  20.         return true;
  21.     }
  22. }

Para hacer la validación en PHP la idea es la misma pero con matices:
Código PHP:
Ver original
  1. function ValidateForm() {
  2.     // sacas valor
  3.     $campo= $_POST['campo'];
  4.  
  5.     $err = false;
  6.     $message = "Se han producido los siguientes errores:<br/>";
  7.  
  8.     // compruebas lo que quieras sobre ese valor (por ejemplo, que esté vacío)
  9.     if (...) {
  10.         $err = true;
  11.         $message .= "Campo campo no pasa la validación<br/>";
  12.     }
  13.     // aquí puedes añadir tantas validaciones como quieras.
  14.    
  15.     // si existe error, devolvemos el mensaje. Y si no, devolvemos true.
  16.     if ($err) {
  17.         return $message;
  18.     } else {
  19.         return true;
  20.     }
  21. }

La forma de llamar también es diferente. Para JavaScript se hace desde onsubmit del form:
Código HTML:
Ver original
  1. <form name="nombre_del_form" action="loquesea" onsubmit="return validateForm()" method="post">

Sin embargo, la validación desde PHP se hace en servidor. En el código de recepción del formulario tendrás que hacer:
Código PHP:
Ver original
  1. if ($message = ValidateForm()) {
  2.     // Aquí todo ha ido bien
  3. } else {
  4.     // Aquí no se ha pasado alguna validación y en $message tienes un mensaje que te dice qué ha pasado.
  5. }

Por último, tienes que saber que es bueno hacer validación tanto en cliente (JS) como en servidor (PHP). Por qué? Sencillo, si la haces sólo en servidor estás enviando mensajes de más, ya que envías el form, PHP te dice que no está bien y vuelves al principio, hay un trasiego de datos que te puedes ahorrar, ya que si está validado con JS no se envía el mensaje al servidor. Si lo validas sólo con JavaScript tienes un problema, algunos navegadores (por ejemplo, Firefox) permiten quitar JavaScript, por lo que te podrían enviar datos erróneos queriendo y joderte la aplicación.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #4 (permalink)  
Antiguo 02/08/2011, 09:56
Avatar de dcreate  
Fecha de Ingreso: octubre-2009
Ubicación: Veracruz
Mensajes: 536
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: Para crear una ventana..

hola, te recomiendo q leas un poco de isset y el empty.

un pekeño ejemplo de esto seria

index.php
Código HTML:
Ver original
  1. <form action="otra.php" method="post">
  2. Nombre: <input type="text" name="nombre"><br>
  3. <?php echo $_GET['msj'];?>
  4. <input type="submit" name="enviar" value="enviar">
  5. </form>

otra.php
Código PHP:
<?php
if(isset($_POST['enviar'])){
if(!empty(
$_POST['nombre']))
{
echo 
"llenado completo";
}
else
{
header("location: index.php?msj=DEBE INTRODUCIR TODOS LOS DATOS");
exit;
}
}
?>
__________________
Somos lo que pensamos, como pensamos vivimos.
  #5 (permalink)  
Antiguo 02/08/2011, 10:18
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Para crear una ventana..

Perfecto!! muchas gracias a todos..
__________________
Umm, infraccion :(//
  #6 (permalink)  
Antiguo 03/08/2011, 09:16
 
Fecha de Ingreso: julio-2011
Ubicación: Argentina
Mensajes: 38
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Para crear una ventana..

esta wenisimo

Etiquetas: php
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 09:34.