sallybow
Usuario Novato
Usuario Novato

Hola, de nuevo consultadolos...

El nuevo problema con el que me enfrento es que tengo mi codigo con HEREDOC, entonces en la parte de modificar y en la parte de agregar nuevo registro si se deja un campo en blanco o hay algun error de captura manda el mensaje del error pero me borra toda la informacion que ya tenia y se tienen que volver a capturar, necesito que mande el error pero que la informacion se quede para no volverla a capturar, talvez solo borre la parte del error, trate de utilizar una opcion de validacion pero con javascript, el problema es que no se en donde meter el codigo, ya hice pruebas por todos lados y nadamas no lo respeta. les pongo parte de mi codigo para que se den una idea. Creo que puede funcionar corrigiendo algo directamente (que no se que es) o con la idea del javascript. Si tienen alguna sugerencia o correccion se los agradecere.


... estas son las funciones que en un html, funcionan bien

<script language="javascript" type="text/javascript" >
function check_valid(form){
var error="";
error += verify_nombre(form.esquemanombre.value, '', 0);
error += verify_esfedi(form.nuevafe.value);
if (error != ""){
alert(error);
return false;
}
return true;
}
</script>
<script language="javascript" type="text/javascript">

function verify_nombre(campo, caract_extra, nulo) {
var error="";
if (campo == "") {
error="El NOMBRE no puede quedar vacio.\n";
.... quito el codigo para que este abreviado
contador++
} else {
error= "ERROR: No se acepta el caracter '" + ubicacion + "', el NOMBRE solo puede contener letras.\n"
return error;
}
}
return error; }

function verify_esfedi(Cadena) {
var error="";
var Fecha= new String(Cadena) // Crea un string
if (!(Cadena.length==10)) {
error="La FECHA debe estar en formato DD/MM/AAAA, y debe contener 10 caracteres.\n";
.... aqui mas codigo que quito
if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
if (Mes==2 && Dia > 28 || Dia>30) {
error= "Dia inválido. Verificar la FECHA. \n";
return error;
}
}
return error;
}
</script>;

<?
require("aut_verifica.inc.php");
$nivel_acceso=3;
if ($nivel_acceso < $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}

require ("aut_config.inc.php");
$pag=$_SERVER['PHP_SELF'];
.... quito codigo

if ($_GET['accion']=="nuevo"){

cabeceraHTML();

echo <<< HTML
<img src="FONDOS/logo.jpg" width="1016" height="60" /><BR>
<form method="post" action="$PHP_SELF?accion=hacernuevo" onsubmit="return check_valid(this)" >

<table width="500" border="1" cellspacing="0" cellpadding="4" align="center">
<tr>
<td colspan="2" height="30" bgcolor="#115A7A">
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">.:

.... hago la el formulario

if ($_GET['accion']=="hacernuevo"){
$fecha=$_POST['fecha'];
$nombre=$_POST['esquemanombre'];
$descripcion=$_POST['descripcion'];

// ***Validar el Nombre ***

if (ereg("[0-9]", trim($nombre))) {
header ("Location: $pag?accion=nuevo&error=5");
exit;
}

// ***valida dia mes y año ****

if (!ereg("(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20)[0-9]{2}", $fecha)){
header ("Location: $pag?accion=nuevo&error=6");
exit;
}
... y esta parte valida y me manda el error, quisiera que aqui no me borrara lo demas.

Avatar Image
@man / @woman
@man / @woman

A ver si me aclaro. Tienes un formulario con varios campos. Después lo procesas en php y alguno da error. Vuelves al formulario y quieres que los campos previos se queden.

Yo trabajaría con el php que procesa el formulario. Empiezo poniendo una variable a 0, para indicar que no tengo error. Y pasaría a comprobar cada campo.

- Si el campo esta bien, guardar el dato X en $X_bien y en $X_value

- Si el campo esta mal, descartar los datos y poner la variable de error a 1.

Una vez revisado todos los campos, vería el valor de la variable de error:

- Es 0. Proceso el formulario.

- Es 1. Vuelvo a pedir los datos, para ello tengo los datos buenos guardados, así que le imprimiria con el tipo <input.... value="$X_value"... ¿entiendes?

Siguuiendo con esto. A mi me gusta que sea el mismo archivo php quien muestra el formulario y lo procesa. Así puedes al inicio comprobar si viene del formulario, y sino imprimirle.

Es más, puedes hacer una función que imprima el formulario, se le pasa como argumentos $X_value. Que en la primera vez estaran en blanco.

sallybow
Usuario Novato
Usuario Novato

He probado varias cosas y no ha funcionado podras darme un ejempo pequeño de lo que propones?

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 18/Ago/2004, 22:15
Ch3r1f QuiNtaN ivanitoweb410kAug/04