| |||
Problema validación al insertar en base datos Hola, tengo un formulario con el que inserto datos en una BD. El formulario tiene un javascript que lo valida y además en la BD también tengo reglas de validación. El problema es que no consigo insertar los datos (correctos) a no ser que elimine las reglas de validación en la BD. Las reglas de validación que tengo en la BD son del tipo: "Como #####", ésta última por ejemplo para un código postal. |
| ||||
mejor pon el codigo
__________________ Manual de ASP Avanzado ;-) |
| |||
Hola. El código javascript de validación es correcto ya que además de validar correctamente, los datos del formulario se insertan sin problemas en la base de datos "desnuda" de Access (sin reglas de validación). Pero cuando en Access le pongo reglas de validación a la BD, ya no se pueden insertar los datos, apareciendo en el mensaje de error del navegador justamente la frase que puse en Access, para la regla de validación. |
| |||
Acabo de hacer otra prueba y sigue ocurriendo lo mismo. He creado un pequeño ejemplo (sin validar con javascript): - Una base de datos access consistente en una tabla "usuarios" con 2 campos: nombre y email. - Un pequeño formulario: nombre + email. Y ocurre lo mismo, si en el Access pongo regla de validacion para el campo email, los datos no se envian y aparece en el navegador el mensaje de error de Access. Si NO pongo regla de validación, los datos se insertan correctamente. |
| |||
El código html es el siguiente: <html> <head> <title>insertar datos en BD</title> </head> <body> <form method="post" name="formul" id="formul" action="introduce.asp" > nombre: <input type="text" name="nombre" id="nombre" size="20"/> <br/> email: <input type="text" name="email" id="email" size="50" /> <br/> <input type="submit" value="inserta" /> </form> </body> </html> El código ASP es el siguiente: <%@ language="JavaScript" %> <html> <head> <title>Untitled</title> </head> <body> <% var conexion = Server.CreateObject("ADODB.Connection"); conexion.Open("Provider=Microsoft.Jet.OLEDB.4.0;"+ "Data Source=" + Server.MapPath("bd/usuarios.mdb")); var nom = Request.Form("nombre"); var eml = Request.Form("email"); var sql = "INSERT INTO usuarios(nombre,email) VALUES('"; sql +=nom+"','"+eml+"');"; try{ conexion.Execute(sql); }catch(e){ Response.Write("Error conexion: "+e.message); Response.End(); } conexion.Close(); conexion = null; %> <a href="index.html">volver<a/> </body> </html> |
| ||||
en lo personal nunca valido desde access ya que siempre existe la posibilidad de que se ingrese un tipo de dato erroneo y por consiguiente error en el navegador. trata de validar desde ASP.
__________________ Manual de ASP Avanzado ;-) |
| |||
De acuerdo. Entonces valido con JavaScript en cliente y si falla valido con ASP en servidor. (en el caso de que por ejemplo JavaScript no esté habilitado en el cliente).Pero, ¿cómo se hace esto? La validación en JavaScript me la sé de memoria. Pero lo de validar con ASP no lo tengo muy claro. ¿Valido con ASP si falló JavaScript? o ¿los datos siempre se validan con ASP después de validarlos con javascript en cliente? ¿Y si además quiero que la validación en ASP se haga en la misma página (para los mensajes de aviso)? A todo esto, el lenguaje de script usando en ASP es javascript. |
| ||||
Cita: claro, puede que algun cliente deshabilite el Javascript a proposito¿Valido con ASP si falló JavaScript? Cita: no siempre, pero recuerda que el validar del lado del cliente es para hacer la navegacion mas rapida, al no tener que enviar el formulario y tener que esperar un respuesta del servidor.¿los datos siempre se validan con ASP después de validarlos con javascript en cliente? Cita: una vez que envias el formulario no puedes enviarle un mensaje al cliente desde ASP, aunque uses Jscript como lenguaje.¿Y si además quiero que la validación en ASP se haga en la misma página (para los mensajes de aviso)? Como te dije si lo haces con ASP tienes que esperar la respuesta del servidor
__________________ Manual de ASP Avanzado ;-) |