Foros del Web » Programando para Internet » PHP »

campos obligatorios

Estas en el tema de campos obligatorios en el foro de PHP en Foros del Web. Hola a todos, quiero hacer una consulta: Tengo un formulario donde hay varios campos que quiero que sean obligatorios, por tanto, no pueden quedar vacios, ...
  #1 (permalink)  
Antiguo 26/02/2009, 08:21
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información campos obligatorios

Hola a todos, quiero hacer una consulta:

Tengo un formulario donde hay varios campos que quiero que sean obligatorios, por tanto, no pueden quedar vacios, y cuando aprimo el boton guardar me salga las alertas que no pueden quedar vacios y me devuelva el foco al campo que esta vacio y no deje guardar el registro...

Cabe aclarar que la operacion de guardar se encuentra en un archivo diferente al del formulario llamado guardar.php
  #2 (permalink)  
Antiguo 26/02/2009, 08:34
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: campos obligatorios

mmm pues una forma super rapida y sencilla es con la misma herramientas q ofrece el dreamweaver bueno y es q nose si uses esta herramienta seleccionas tu form y del lado derecho viene la opcion de validar seleccionas los campos q kieres sean obligatorios y te pone un script
  #3 (permalink)  
Antiguo 26/02/2009, 08:44
Avatar de gakutaru  
Fecha de Ingreso: agosto-2005
Ubicación: frente a mi NtbK
Mensajes: 239
Antigüedad: 18 años, 7 meses
Puntos: 6
Respuesta: campos obligatorios

Holas, lo que te recomiendo es que valides x javascript, ya q si validas x php al retornar se borran las variables, java script las mantiene y no te saca de la pagina
ahora te anexo un formulario que tengo, si lo lees podras deducir como funciona, si copias este codigo a un archivo .html o .php funcionara.
el formulario valida 4 cosas
- q en el rut solo se ingrsen numeros y la letra k
- que no se inserten campos vacios
- que no se inserten letras
- que no se pueda usar la funcion paste o pegar
Código HTML:
<link rel="stylesheet" type="text/css" href="Stylos.css"> 
<form enctype="multipart/form-data" name="formulario" method="post">
<table class="Tabla">
<tr><td colspan="2" class="Titulos"><b>Ingresar Datos Trabajador</b></td></tr>
<tr class="CeldaNormal"><td><b>Rut:</b></td><td><input type="text" name="Rutd" id="falta1" maxlength="15" onChange="this.value=Run(this.value)">* (EJ: 123456789)<span id="falt1"></span></td></tr>
<tr class="CeldaNormal"><td><b>Rol</b></td><td><input type="text" name="Rol" id="falta2" maxlength="15" onKeyPress="return validar(event);" onpaste="return false" onClick="return validar(event);">*<span id="falt2"></span></td></tr>
<tr class="CeldaNormal"><td><b>Nombres</b></td><td><input type="text" name="Nombre" id="falta3" onChange="this.value=nombre(this.value)"  maxlength="100">*<span id="falt3"></span></td></tr>
<tr class="CeldaNormal"><td><b>Apellidos</b></td><td><input type="text" name="Apellido" id="falta4" onChange="this.value=nombre(this.value)" maxlength="100">*<span id="falt4"></span></td></tr>
<tr class="CeldaNormal"><td><b>Permisos Trabajador:</b></td><td><select name="Permisos">
<option value="SFormulario">Solo Formulario</option>
<? include('ListarFavorito.php'); ?>
</select>*</td></tr>
<tr class="CeldaNormal"><td><b>Posicion:</b></td><td><select name="Posicion" id="falta5">
<option value="">Selecione...</option>
<? include('ListarPosicion.php'); ?>
</select>*<span id="falt5"></span></td></tr>
<tr class="CeldaNormal"><td><b>Cargo:</b></td><td><select name="Cargo" id="falta6">
<option value="">Selecione...</option>
<? include('ListarCargo.php'); ?>
</select>*<span id="falt6"></span></td></tr>
<tr class="CeldaNormal"><td><b>Gerencia:</b></td><td><select name="Gerencia" id="falta7">
<option value="">Selecione...</option>
<? include('ListarGerencia.php'); ?>
</select>*<span id="falt7"></span></td></tr>
<tr class="CeldaNormal"><td><b>Unidad:</b></td><td><select name="Unidad" id="falta8">
<option value="">Selecione...</option>
<? include('ListarUnidad.php'); ?>
</select>*<span id="falt8"></span></td></tr>
<tr class="CeldaNormal"><td><b>Imagen </b></td><td><input type="file" name="archivo" id="falta9"><span id="falt9"></span></td></tr>
<tr><td colspan="2"><input type="button" value="Aceptar" onClick="return Validar();" class="clickable" onMouseOver="change(this,'btnFocus')" onMouseOut="change(this,'normBtn')" id="normBtn"><input type="reset" value="Reset" class="clickable" onMouseOver="change(this,'btnFocus')" onMouseOut="change(this,'normBtn')" id="normBtn"></td></tr>
<tr><td colspan="2">* Campos Obligatorios</td></tr>
<tr><td colspan="2">** Dimencion maxima: 200 x 200 px <br> Tamaño maximo imagen : 700kb </td></tr>
</form>
<script>
function change(obj,nid){ //funcion para el css
	obj.id=nid;
}
function Run(string) { //funcion para permitir solos numeros y k
    for (var i=0, output = '', validos="0123456789Kk"; i < string.length; i++){
       if (validos.indexOf(string.charAt(i)) != -1){
          output += string.charAt(i);
		  }//fin if
	}//fin for
    return output;
} //fin fuction
function nombre(string) {
    for (var i=0, output = '', validos="abcdefghijklmnopqrstuvwxyzñABCDEFGHYJKLMNOPQRSTUVWXYZÁáÂâÀàÅåÃãÄäÇçÉéÊêÈèÐðËëÍíÎîÌìÏïÑñÓóÔôÒòÕõÖöŠšÚúÛûÙùÜüÝýÿŸ. "; i<string.length; i++){
       if (validos.indexOf(string.charAt(i)) != -1){
          output += string.charAt(i);
		  }//fin if
	}//fin for
    return output;
} //fin fuction
function Validar(){ //funcion para que no se ingresen campos vacios
var Valida = true;
var i,falta;
for(i=1;i<10;i++){//for para recivir los puntajes
falta=document.getElementById("falta"+i);
if(falta.value == ""){
document.getElementById("falt"+i).innerHTML="<font color='#FF0000'><br><b>Faltan datos</b></font>";
Valida=false;
}//fin if
if(falta.value != ""){
document.getElementById("falt"+i).innerHTML="";
}
}//fin for
if(Valida == true){
document.formulario.action="CrearCuentaSQL.php";
document.formulario.submit();
return Valida;
}//fin if true
else{
return Valida;
}
}//fin valida
function validar(e) { //funcion para solo se ingresen numeros
    tecla = (document.all)?e.keyCode:e.which;
    if (tecla==8) return true;
    patron = /\d/;
    te = String.fromCharCode(tecla);
    return patron.test(te); 
} 
</script> 
  #4 (permalink)  
Antiguo 26/02/2009, 09:00
 
Fecha de Ingreso: febrero-2009
Mensajes: 21
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: campos obligatorios

Hola, para poder ayudarte tube que crear un escenario que me ponga en tu situacion, espero estar acertando.


en un archivo index.php tengo el siguiente codigo del formulario.

Código:
<form id="miForm" action="guardar.php" method="post">
  Campo 1 <input type="text" name="campo1"><br/><br/>
  Campo 2 <input type="text" name="campo2"> * Obligatorio   
  <input type="submit" name="guardar" value="Guardar">
</form>
y bueno, para validar el campo2 que en este caso es obligatorio, te propongo que uses algo como esto, en tu archivo guardar.php
Código:
<?php 
  $value1 = $_POST['campo1'];
  $value2 = $_GET['campo2'];  
  if( $value2 == "" ){
    echo "<script type=\"text/javascript\">
      alert('El campo 2 es obligatorio');  document.location.href='index.php';
    </script>";    
    exit();
  }else{
    echo "Ahora aqui ya puedes guardar los datos ingresados...";
  }  
?>

espero que te sirva de algo... tengo otras propuestas pero en estos momentos ando un poco ocupado, si no te sirve eso te mandare otra forma de validar ok.
Suerte.

Última edición por GatorV; 26/02/2009 a las 14:12
  #5 (permalink)  
Antiguo 02/03/2009, 14:10
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
De acuerdo Respuesta: campos obligatorios

Muchas gracias, me sirvio, debe funcionar con varios campos verdad??...
  #6 (permalink)  
Antiguo 02/03/2009, 14:20
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: campos obligatorios

Hola que tal, adredezco mucho tu ayuda, ahora quiero preguntarte:

Quiero guardar el valor de un select, en este momento estoy trayendo los valores de otra tabla:

$sql="select * from contratos";
$result=mysql_query($sql,$link);

***este select es donde trae los valos de la otra tabla****

<select>
<option value="-1" name='contratos' id='contratos'>Seleccionar..</option>
<? while ($row=mysql_fetch_array($result))
{
echo "<option value=$row[id]>".$row[contra]."</option>";
}
?>
</select>

al seleccionar un valor de esos que me despliega, oprimo clic en el boton guardar y me remite a un archivo que se llama guardar.php donde me hace el insert...

como guardo lo que que seleccione en el select llamado contratos...
  #7 (permalink)  
Antiguo 02/03/2009, 14:34
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: campos obligatorios

No le estas dando ningun nombre a tu select:
<select>

Debe ser:
<select name="contratos">
Y luego lo recoges igual que cualquier otro campo, usando $_POST (En caso de que ese sea el metodo de tu formulario):
$_POST['contrato']
  #8 (permalink)  
Antiguo 02/03/2009, 15:03
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Mensaje Respuesta: campos obligatorios

Ahora no me guarda nada...
  #9 (permalink)  
Antiguo 02/03/2009, 15:05
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: campos obligatorios

Hice un pequeño error al escribir el codigo:
Cita:
<select name="contratos">
Y luego lo recoges igual que cualquier otro campo, usando $_POST (En caso de que ese sea el metodo de tu formulario):
$_POST['contrato']
Deberia ser $_POST['contratos']
  #10 (permalink)  
Antiguo 02/03/2009, 15:25
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Mensaje

Si asi lo tengo... pero ahora no me guarda nada, antes me guardaba los demas campos y donde ivan los select me los dejaba vacios... voy a enviarle el codigo de guardar.php

switch ($boton)
{
case "Guardar":
{
//Valida si los campos con * estan vacios
$value1 = $_GET['codmetr'];
$value2 = $_GET['codacfi'];
$value3 = $_GET['sersev'];
if( $value1 == ""){
echo "<script type=\"text/javascript\">
alert('Los campos con * son obligatorios'); document.location.href='metrologia.php';
</script>";
exit();
}else
{
//ya puede guardar
echo"<center>";
echo"<center><img src='images/image002.gif' width='131' height='47' /></center>";
echo"<strong>MI EMPRESA</strong>";
echo"<br>";
echo"<strong>XXXXXXXXX</strong>";
echo"<br><br>";
if (empty($_FILES['archivo']['name']))
//{
header("location: metrologia.php?proceso=falta_indicar_fichero"); //o como se llame el formulario ..
exit();
//}

// archivo temporal (ruta y nombre).
$binario_nombre_temporal=$_FILES['archivo']['tmp_name'];

// leer del archvio temporal .. el binario subido.
// "rb" para Windows .. Linux parece q con "r" sobra ...
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal)));

// Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo.
$binario_nombre=$_FILES['archivo']['name'];
$binario_peso=$_FILES['archivo']['size'];
$binario_tipo=$_FILES['archivo']['type'];

if($_FILES['archivo']['type']!="image/pjpeg" && $_FILES['archivo']['type']!="image/jpeg")
{
echo 'Error, el archivo tiene que ser .jpeg';
exit();
}
if($_FILES['archivo']['size'] > 800000)
{
echo 'El archivo no puede ser mayor a 800kb';
exit();
}
$sql="insert into equipos (cod_met,cod_acfi,ser_seven,contra,ubi_tecn,respon ,estado,clasif,tip_equi,var_fisqui,fabri,modelo,se rial,observaciones,id_foto, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo)values('$codmetr','$codacfi','$sersev ','".$_POST['contratos']."','$ubitec','$responsable','$estado','$clasifi', '$tipeq','$variable','$fabricante','$modelo','$ser ie', '$descrip','', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')";
mysql_query($sql,$conectar);
echo "<strong><em>Datos Almacenados con exito!</strong></em>";
echo"<form name='form1' method='post' action='metrologia.php'>";
echo"<input type='submit' name='Submit' value='&lt;&lt; Volver'>";
echo"</form></center>";
}
break;
}

y el formulario donde lleva los datos:

<form action="guardar.php" method="post" name="formLogin"class="formLogin">
<select name="contratos" id="contratos">
<option value="-1">Seleccionar..</option>
<? while ($row=mysql_fetch_array($result))
{
echo "<option value=$row[id]>".$row[contra]."</option>";
}
?>
</select>
<input type="submit" name="boton" class="button" value="Guardar" />

mira el insert: no me guarda el select

$sql="insert into equipos (cod_met,cod_acfi,ser_seven,contra,ubi_tecn,respon,estado,clasif,tip_equi,var_fisqui ,fabri,modelo,serial,observaciones,id_foto, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo)values('$codmetr','$codacfi','$sersev ','".$_POST['contratos']."','$ubitec','$responsable','$estado','$clasifi','$ tipeq','$variable','$fabricante','$modelo','$serie ', '$descrip','', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')";

Última edición por GatorV; 02/03/2009 a las 16:01
  #11 (permalink)  
Antiguo 02/03/2009, 16:05
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: campos obligatorios

Cuenta los campos en los que tratas de meter la informacion, ¿son 19 cierto?
Pero, sin embargo, en los valores solo asignas el valor a 18 campos. Por eso no inserta NADA.

Siempre imprime mysql_error() en caso de que haya error para hacer debug del codigo.
mysql_query(/* ... */) or die(mysql_error());
  #12 (permalink)  
Antiguo 03/03/2009, 06:48
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Busqueda Respuesta: campos obligatorios

Ok, ya revise pero nada... solamente me muestra en pantalla esto: no hace el insert... proque...

echo"<center>";
echo"<center><img src='images/image002.gif' width='131' height='47' /></center>";
echo"<strong>MI EMPRESA</strong>";
echo"<br>";
echo"<strong>XXXXXXXXX</strong>";
echo"<br><br>";
  #13 (permalink)  
Antiguo 03/03/2009, 06:58
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: campos obligatorios

Ok ya me inserto, era error de {} ya lo solucione, pero imaginate que cuando trato de guardar un registro y los campos obligatorios no estan vacios me sigue saliendo el mensaje de error en que estan vacios...
  #14 (permalink)  
Antiguo 03/03/2009, 07:15
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: campos obligatorios

HOLA, DESCUBRI ALGO EN MI FORMULARIO DE CAPTURA..

EN UNA CAJILLA DE TEXTO, HAY UN ESPACIO AL INICIO QUE NO PUEDO SUPRIMIR... EJEMPLO:
LA V SON ESPACIOS

VVVV36521545, LAS V QUE VES AL INICIO SON ESPACIOS QUE NO ME DEJAN SUPRIMIR, POR TANTO PIENSO QUE CUANDO SE VERIFICA:

if( $value1 == "" ){
echo "<script type=\"text/javascript\">
alert('El campo 1 es obligatorio'); document.location.href='metrologia.php';
</script>";
exit();
ESTE O NO ESTE VACIO ME VA A SALIR EL MENSAJE DE: "El campo 1 es obligatorio"
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 08:30.