Foros del Web » Programando para Internet » ASP Clásico »

MsgBox para notificar que datos no se encuentran en BD

Estas en el tema de MsgBox para notificar que datos no se encuentran en BD en el foro de ASP Clásico en Foros del Web. Que tal? Mi primer post. El motivo, es que deseo que al momento de procesar los datos y ser comparados con la base de datos, ...
  #1 (permalink)  
Antiguo 13/10/2009, 15:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 15 años, 6 meses
Puntos: 1
Exclamación MsgBox para notificar que datos no se encuentran en BD

Que tal?

Mi primer post.

El motivo, es que deseo que al momento de procesar los datos y ser comparados con la base de datos, si no coinciden o no hay ninguno, muestre una pequeña ventana de error al cliente.

Para ubicarlos:

Mi formulario solo hará consulta (envío y recuperación de datos), nada de ingreso
Ingreso datos en formulario.html
carga .asp

"
A = Clng (Request.Form("Cedula"))
MiSQL= "SELECT Cedula,Nombre,Apellido,Direccion,Telefono1,Telefon o2,Email,Fecha FROM Cliente WHERE Cedula = (" & A & ") "
con.Execute(MiSQL)

"
Mi idea es la siguiente:

"Si [A] (que son los datos ingresados en el formulario) no es igual a [Cedula] (el campo donde va a hacer la búsqueda) entonces

mostrar ventana= Los datos ingresados no se encuentran en nuestra base de datos.
al dar aceptar volver a la página de formulario.htm
cerrar SI"

Se que es con javascript y colocando response.write, pero el código exacto nosé.

PD: El ASP es funcional, solo quiero añadirle esta precaución ante errores del cliente.
  #2 (permalink)  
Antiguo 13/10/2009, 17:32
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: MsgBox para notificar que datos no se encuentran en BD

Es un poco más complicado de lo que pareciera ... por que la pequeña ventana debe estar controlada por javascript, no por ASP, entonces lo ideal sería que hicieras la búsqueda por Ajax para que el usuario no vea el refresco de la página y luego botar un alert o un popup.

Otra alterativa sería que en lugar de alert o un popup mandes llamar un lightWindows con el mensaje de error.

Ya es cosa de echarle imaginación.

Saludos

PD. Bienvenido al foro
  #3 (permalink)  
Antiguo 13/10/2009, 18:15
Avatar de mc_quake  
Fecha de Ingreso: enero-2006
Ubicación: www.ecocargo.cl
Mensajes: 683
Antigüedad: 19 años, 3 meses
Puntos: 8
Respuesta: MsgBox para notificar que datos no se encuentran en BD

Estima do Cosertel yo hice algo asi espero que te sirva

esto va sobre el html cuando se cumpla o no la condicion que determines

Código ASP:
Ver original
  1. NOTIFY = NOTIFY & "<table width=""100%"" border=""0"" cellpadding=""0"" cellspacing=""0"">"
  2.         NOTIFY = NOTIFY & "<form name=""form1"" method=""post"" action="""">"
  3.         NOTIFY = NOTIFY & "  <tr>"
  4.         NOTIFY = NOTIFY & "    <td height=""35"" valign=""middle"" bgcolor=""#FFFF99"" style=""color:#FF0000; font-size:16px; font-weight:bold; padding-left:10px;"">Notificacion de InmoWeb</td>"
  5.         NOTIFY = NOTIFY & "    <td height=""35"" align=""right"" valign=""middle"" bgcolor=""#FFFF99"" style=""color:#FF0000; font-size:16px; font-weight:bold; padding-right:10px;;""><input type=""image"" name=""imageField"" src=""../../inmoweb/_imag/_sitio/close.gif"" style=""background-color:transparent;""></td>"
  6.         NOTIFY = NOTIFY & "  </tr>"
  7.         NOTIFY = NOTIFY & "  <tr>"
  8.         NOTIFY = NOTIFY & "    <td colspan=""2"" bgcolor=""#FFFF99"" style=""padding-left:30px; color:#000000;""><b>Han ocurrido algunos errores en el ingreso de la información solicitada</b></td>"
  9.         NOTIFY = NOTIFY & "  </tr>"
  10.         NOTIFY = NOTIFY & "  <tr>"
  11.         NOTIFY = NOTIFY & "    <td colspan=""2"" bgcolor=""#FFFF99"" style=""padding-left:50px; color:#FF0000;""><br>"& Errores &"<br></td>"
  12.         NOTIFY = NOTIFY & "  </tr>"
  13.         NOTIFY = NOTIFY & "<input name=""ocultar"" type=""hidden"" value=""1"">  "
  14.         NOTIFY = NOTIFY & "</form>"
  15.         NOTIFY = NOTIFY & "</table>"

luego en el Head

Código HTML:
Ver original
  1. <style type="text/css">
  2.  
  3.       body {
  4.         onload
  5.       }
  6.  
  7.     </style>
  8. <link rel="stylesheet" href="../_includes/mediabox/mediabox.css" type="text/css" media="screen" />

luego dentro del body

Código html + asp:
Ver original
  1. <% If errores <> "" and ocultar = 0 Then %>
  2. <script language="javascript">
  3. void(0)
  4. document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'
  5. </script>
  6. <% End If %>

codigo archivo mediabox.css

Código css:
Ver original
  1. * {
  2.         margin: 0;
  3.         padding: 0;
  4.     }
  5.    
  6.     body {
  7.         font-family: Georgia, "Times New Roman", Times, serif;
  8.         font-size: 2em;
  9.         background: #900;
  10.         color: #fff;
  11.     }
  12.    
  13.     a {
  14.         color: #F00;
  15.     }
  16.    
  17.     /* base semi-transparente */
  18.     .overlay{
  19.         display: none;
  20.         position: absolute;
  21.         top: 0;
  22.         left: 0;
  23.         width: 100%;
  24.         height: 100%;
  25.         background: #000;
  26.         z-index:1001;
  27.         opacity:.75;
  28.         -moz-opacity: 0.75;
  29.         filter: alpha(opacity=75);
  30.     }
  31.    
  32.     /* estilo para lo q este dentro de la ventana modal */
  33.     .modal {
  34.         display: none;
  35.         position: absolute;
  36.         top: 25%;
  37.         left: 25%;
  38.         width: 50%;
  39.         height: 50%;
  40.         padding: 16px;
  41.         background: #fff;
  42.         color: #333;
  43.         z-index:1002;
  44.         overflow: auto;
  45.     }

espero te sirva ami me va muy bien asi se evita de mandar a otra pagina a mostrar errores y cosas por el estilo probado en varios navegadores sin problemas
__________________
Mc_Quake

Para ayudar en lo que se pueda:Zzz:
  #4 (permalink)  
Antiguo 13/10/2009, 19:30
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: MsgBox para notificar que datos no se encuentran en BD

Cita:
Iniciado por Myakire Ver Mensaje
Es un poco más complicado de lo que pareciera ... por que la pequeña ventana debe estar controlada por javascript, no por ASP, entonces lo ideal sería que hicieras la búsqueda por Ajax para que el usuario no vea el refresco de la página y luego botar un alert o un popup.

Otra alterativa sería que en lugar de alert o un popup mandes llamar un lightWindows con el mensaje de error.

Ya es cosa de echarle imaginación.

Saludos
No estoy familiarizado con "AJAX" ni "lightWindows", estoy empezando en el desarrollo web. La BD es access.

Cita:
Iniciado por Myakire Ver Mensaje
PD. Bienvenido al foro
Gracias por la bienvenida
  #5 (permalink)  
Antiguo 14/10/2009, 08:43
 
Fecha de Ingreso: octubre-2009
Mensajes: 14
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: MsgBox para notificar que datos no se encuentran en BD

Bueno si es ASP clasico podrias hacer lo siguiente:
A = Clng (Request.Form("Cedula"))
MiSQL= "SELECT Cedula,Nombre,Apellido,Direccion,Telefono1,Telefon o2,Email,Fecha FROM Cliente WHERE Cedula = (" & A & ") "
con.Execute(MiSQL)

Si con dicha condicion al agregar A del formulario no te trae valores la consulta

Haces lo siguiente:

<%
If rs.EOF then
%>
<script type="text/javascript">
var respuesta;
alert("No existen registros con los parametros establecidos"); //o el mensaje que tu quieras

respuesta = confirm("Desea regresar al inicio");

if(respuesta ==true){
//pag a la que te quieras regresar
}

<%
end if
%>

Espero te ayude la info saludos
  #6 (permalink)  
Antiguo 14/10/2009, 10:59
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: MsgBox para notificar que datos no se encuentran en BD

Cita:
Iniciado por lexmaniak Ver Mensaje
Bueno si es ASP clasico podrias hacer lo siguiente:
A = Clng (Request.Form("Cedula"))
MiSQL= "SELECT Cedula,Nombre,Apellido,Direccion,Telefono1,Telefon o2,Email,Fecha FROM Cliente WHERE Cedula = (" & A & ") "
con.Execute(MiSQL)

Si con dicha condicion al agregar A del formulario no te trae valores la consulta

Haces lo siguiente:

<%
If rs.EOF then
%>
<script type="text/javascript">
var respuesta;
alert("No existen registros con los parametros establecidos"); //o el mensaje que tu quieras

respuesta = confirm("Desea regresar al inicio");

if(respuesta ==true){
//pag a la que te quieras regresar
}

<%
end if
%>

Espero te ayude la info saludos
Lo intenté, pero me refleja el siguiente error:
Cita:
Tipo de error:
Microsoft VBScript runtime (0x800A01A8)
Object required: 'rs'
/HTML & ASP/Consulta.asp, línea 15
y se refiere a:

If rs.EOF then

Presentaré el código el código de funcionamiento para aclarar:

Cita:
<%
Dim con, Tabla
Set con = Server.CreateObject("ADODB.Connection")
with con
.Provider="Microsoft.Jet.OleDB.4.0"
.Open Server.MapPath("Historial.mdb")
End with

A = Clng (Request.Form("Cedula"))
MiSQL= "SELECT Cedula,Nombre,Apellido,Direccion,Telefono1,Telefon o2,Email,Fecha FROM Cliente WHERE Cedula = (" & A & ") "
con.Execute(MiSQL)
If rs.EOF then
%>
<script type="text/javascript">
var respuesta;
alert("No Exisen Registros con los Parámetros Establecidos");
respuesta = confirm("¿Desea Regresar al Inicio?");
if(respuesta ==true){
(ConsultaHistorial.html)
}
</script>
<%
end if
Probé con cambiar los "con" por "rs", pero nada.
  #7 (permalink)  
Antiguo 14/10/2009, 11:55
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años, 3 meses
Puntos: 126
Respuesta: MsgBox para notificar que datos no se encuentran en BD

Hola

No has creado el objeto recordset.
No estoy seguro que se pueda integrar javascript en el ASP tal que así. La mejor opción sería aplicar lo que te comentó Myakire

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #8 (permalink)  
Antiguo 14/10/2009, 14:56
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: MsgBox para notificar que datos no se encuentran en BD

Cita:
Iniciado por Adler Ver Mensaje
Hola

No has creado el objeto recordset.
No estoy seguro que se pueda integrar javascript en el ASP tal que así. La mejor opción sería aplicar lo que te comentó Myakire

Suerte
La cuestión es que es ASP Clásico.

Gracias de todas formas

Donde iría ubicado el recorset? Tendría que cambiar gran parte del código?

Última edición por Myakire; 14/10/2009 a las 17:22
  #9 (permalink)  
Antiguo 14/10/2009, 17:31
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Respuesta: MsgBox para notificar que datos no se encuentran en BD

La cuestión es que aunque tu página sea ASP, PHP, JSP, .NET o lo que quieras, la ventana de alerta que deseas debe ser controlada por el cliente, por el browser, es decir, por javascript. Yo te sugería que usaras Ajax (que se implementa con javascript) para que el usuario no experimente ese feo efecto de ver que la página se recarga y luego aparezca con un alert inmediatamente.

¿haz probado el código que mc_quake te proporcionó completo?

Sobre el error que Adler te comenta es que deberías de modificar tu código a esto:
Cita:
...
MiSQL= "SELECT Cedula,Nombre,Apellido,Direccion,Telefono1,Telefon o2,Email,Fecha FROM Cliente WHERE Cedula = (" & A & ") "
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open MiSQL, con

If rs.EOF then
...
Saludos
  #10 (permalink)  
Antiguo 14/10/2009, 20:35
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: MsgBox para notificar que datos no se encuentran en BD

Cita:
Iniciado por Myakire Ver Mensaje
La cuestión es que aunque tu página sea ASP, PHP, JSP, .NET o lo que quieras, la ventana de alerta que deseas debe ser controlada por el cliente, por el browser, es decir, por javascript. Yo te sugería que usaras Ajax (que se implementa con javascript) para que el usuario no experimente ese feo efecto de ver que la página se recarga y luego aparezca con un alert inmediatamente.

¿haz probado el código que mc_quake te proporcionó completo?

Sobre el error que Adler te comenta es que deberías de modificar tu código a esto:


Saludos
Distinguido, pude resolver y ahora aparece lo que quería
Gracias por responder las preguntas de este novato.
me falta nada más el redireccionamiento a la página de ingreso de datos en el script.
Gracias nuevamente.

El error aparecía; se recuerda al principio del código, que se declaran 2 variables, con y Tabla, resulta que Tabla sustituye (para este caso) el rs (Recordset), y el set Tabla = Server.CreateObject("ADODBRecordset") se había creado más adelante;
lo que hice fue colocar el script después de la sentencia Tabla.Open. Así funciona el script.

Y, nuevamente, gracias.

Última edición por Cosertel; 14/10/2009 a las 20:41 Razón: Agregar explicación la solución del funcionamiento
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 00:00.