Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kalmfs

Mensagens de erro

Recommended Posts

Fala galera!

Acho que o título já diz tudo, mas tô precisando de uma ajuda p/ preparar mensagens de erro caso o usuário deixe algum campo do cadastro em branco. Tipo, uma mensagem de erro para cada campo e que esses erros apareçam na mesma página de cadastro. Já testei várias dicas que encontrei pelo fórum, mas não tá rolando ainda.

Vou mandar o código todo pra facilitar.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <!--#include file="Connections/conn.asp" --><%' *** Edit Operations: declare variablesDim MM_editActionDim MM_abortEditDim MM_editQueryDim MM_editCmdDim MM_editConnectionDim MM_editTableDim MM_editRedirectUrlDim MM_editColumnDim MM_recordIdDim MM_fieldsStrDim MM_columnsStrDim MM_fieldsDim MM_columnsDim MM_typeArrayDim MM_formValDim MM_delimDim MM_altValDim MM_emptyValDim MM_iMM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))If (Request.QueryString <> "") Then  MM_editAction = MM_editAction & "?" & Request.QueryStringEnd If' boolean to abort record editMM_abortEdit = false' query string to executeMM_editQuery = ""%><%' *** Redirect if username existsMM_flag="MM_insert"If (CStr(Request(MM_flag)) <> "") Then  MM_dupKeyRedirect="cadastro.asp"  MM_rsKeyConnection=MM_conn_STRING  MM_dupKeyUsernameValue = CStr(Request.Form("usuario"))  MM_dupKeySQL="SELECT usuario FROM cadastro WHERE usuario='" & MM_dupKeyUsernameValue & "'"  MM_adodbRecordset="ADODB.Recordset"  set MM_rsKey=Server.CreateObject(MM_adodbRecordset)  MM_rsKey.ActiveConnection=MM_rsKeyConnection  MM_rsKey.Source=MM_dupKeySQL  MM_rsKey.CursorType=0  MM_rsKey.CursorLocation=2  MM_rsKey.LockType=3  MM_rsKey.Open  If Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then     ' the username was found - can not add the requested username    MM_qsChar = "?"    If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"    MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue    Response.Redirect(MM_dupKeyRedirect)  End If  MM_rsKey.CloseEnd If%><%' *** Insert Record: set variablesIf (CStr(Request("MM_insert")) = "form1") Then  MM_editConnection = MM_conn_STRING  MM_editTable = "cadastro"  MM_editRedirectUrl = ""  MM_fieldsStr  = "nome|value|apto|value|edificio|value|email|value|usuario|value|senha|value"  MM_columnsStr = "nome|',none,''|apto|none,none,NULL|edificio|',none,''|email|',none,''|usuario|',none,''|senha|',none,''"  ' create the MM_fields and MM_columns arrays  MM_fields = Split(MM_fieldsStr, "|")  MM_columns = Split(MM_columnsStr, "|")    ' set the form values  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))  Next  ' append the query string to the redirect URL  If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then      MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString    Else      MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString    End If  End IfEnd If%><%' *** Insert Record: construct a sql insert statement and execute itDim MM_tableValuesDim MM_dbValuesIf (CStr(Request("MM_insert")) <> "") Then  ' create the sql insert statement  MM_tableValues = ""  MM_dbValues = ""  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2    MM_formVal = MM_fields(MM_i+1)    MM_typeArray = Split(MM_columns(MM_i+1),",")    MM_delim = MM_typeArray(0)    If (MM_delim = "none") Then MM_delim = ""    MM_altVal = MM_typeArray(1)    If (MM_altVal = "none") Then MM_altVal = ""    MM_emptyVal = MM_typeArray(2)    If (MM_emptyVal = "none") Then MM_emptyVal = ""    If (MM_formVal = "") Then      MM_formVal = MM_emptyVal    Else      If (MM_altVal <> "") Then        MM_formVal = MM_altVal      ElseIf (MM_delim = "'") Then  ' escape quotes        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"      Else        MM_formVal = MM_delim + MM_formVal + MM_delim      End If    End If    If (MM_i <> LBound(MM_fields)) Then      MM_tableValues = MM_tableValues & ","      MM_dbValues = MM_dbValues & ","    End If    MM_tableValues = MM_tableValues & MM_columns(MM_i)    MM_dbValues = MM_dbValues & MM_formVal  Next  MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"  If (Not MM_abortEdit) Then    ' execute the insert    Set MM_editCmd = Server.CreateObject("ADODB.Command")    MM_editCmd.ActiveConnection = MM_editConnection    MM_editCmd.CommandText = MM_editQuery    MM_editCmd.Execute    MM_editCmd.ActiveConnection.Close    If (MM_editRedirectUrl <> "") Then      Response.Redirect(MM_editRedirectUrl)    End If  End IfEnd If%><html><head><title>:: Cadastro - Cond. Edf. Água Branca e Água Azul</title><STYLE><!--A {text-decoration: none;}A:HOVER {text-decoration: underline;}--></STYLE><STYLE><!--A:HOVER {color: #000033;}--></STYLE><style>BODY{scrollbar-arrow-color:#fbfbda;scrollbar-face-color:#153c87;scrollbar-highlight-color:#fbfbda;scrollbar-3dlight-color:#153c87;scrollbar-shadow-color:#003366;scrollbar-darkshadow-color:#003366;scrollbar-track-color:#d0d8de;}</style><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><script language="JavaScript" type="text/JavaScript"><!--function MM_reloadPage(init) {  //reloads the window if Nav4 resized  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();}MM_reloadPage(true);//--></script></head><body link="#153c87" vlink="#153c87" alink="#153c87" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="show5()"><div id="LayerData" style="position:absolute; left:325px; top:129px; width:265; height:14px; z-index:2; visibility: visible;">   <script>var mydate=new Date()var year=mydate.getYear()if (year < 1000)year+=1900var day=mydate.getDay()var month=mydate.getMonth()var daym=mydate.getDate()if (daym<10)daym="0"+daymvar dayarray=new Array("Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","Sábado")var montharray=newArray("Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro")document.write("<small><font color='153c87' face='Arial' size='1'>Salvador - Bahia, "+dayarray[day]+", "+daym+" de "+montharray[month]+" de "+year+"</font></small>")</script></div><div id="LayerLogin" style="position:absolute; left:8px; top:142px; width:316px; height:28px; z-index:1; visibility: visible;">   <p><font color="#153c87" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Você     não está logado no sistema.</strong><br>    <a href="login.asp" target="_self">Clique aqui para fazer o login.</a></font></p></div><div id="LayeRelogio" style="position:absolute; left:588px; top:133px; width:3px; height:14px; z-index:3; background-color: #d0d8de; layer-background-color: #d0d8de; border: 1px solid #153c87; visibility: visible;"><Font face=Verdana><span id=relogio style="POSITION: absolute; z-index: 4; left: -1px; width: 0px; height: 18px; visibility: visible;"></span>   <script Language=JavaScript><!--function show5(){if (!document.layers&&!document.all)returnvar Digital=new Date()var hours=Digital.getHours()var minutes=Digital.getMinutes()var seconds=Digital.getSeconds()if (hours<=10)hours="0"+hoursif (minutes<=9)minutes="0"+minutesif (seconds<=9)seconds="0"+secondsmeurelogio="<font size='1' face='Arial' color='#153c87'>   "+hours+":"+minutes+":"+seconds+"</font>"if (document.layers){document.layers.relogio.document.write(meurelogio)document.layers.relogio.document.close()}else if (document.all)relogio.innerHTML=meurelogiosetTimeout("show5()",1000)} //--></script>  </font> </div><table width="754" border="0" cellpadding="0" cellspacing="0">  <!--DWLayoutTable-->  <tr>     <td width="129" height="110"><img src="images/foto_01.jpg" width="129" height="110"></td>    <td width="130"><img src="images/foto_02.jpg" width="130" height="110"></td>    <td width="130"><img src="images/foto_03.jpg" width="130" height="110"></td>    <td width="130"><img src="images/foto_04.jpg" width="130" height="110"></td>    <td width="130"><img src="images/foto_05.jpg" width="130" height="110"></td>    <td width="105" valign="top"><img src="images/foto_06.jpg" width="127" height="110"></td>  </tr></table><table width="699" height="21" border="0" cellpadding="0" cellspacing="0">  <!--DWLayoutTable-->  <tr>     <td width="129" height="21" valign="top"><img src="images/menu_07.gif" width="129" height="21"></td>    <td width="130" valign="top"><img src="images/menu_08.gif" width="130" height="21"></td>    <td width="130" valign="top"><img src="images/menu_09.gif" width="130" height="21"></td>    <td width="130"><img src="images/menu_10.gif" width="130" height="21"></td>    <td width="130" valign="top"><img src="images/menu_11.gif" width="130" height="21" border="0"></td>    <td width="50"><img src="images/dir_top.gif" width="50" height="21"></td>  </tr></table><table width="699" height="20" border="0" cellpadding="0" cellspacing="0">  <tr>     <td width="137" height="20" valign="bottom" bgcolor="#d0d8de"> </td>    <td width="180" valign="bottom" bgcolor="#d0d8de"> </td>    <td width="332" align="left" valign="middle" bgcolor="#d0d8de"><div align="left"><font color="#153c87" size="1" face="Arial, Helvetica, sans-serif"><Font face=Verdana>         </font></font></div></td>    <td width="50"><img src="images/dir_bott.gif" width="50" height="20"></td>  </tr></table><table width="699" height="29" border="0" cellpadding="0" cellspacing="0">  <!--DWLayoutTable-->  <tr>     <td width="265" rowspan="3" valign="top" bgcolor="#d0d8de"><!--DWLayoutEmptyCell--> </td>    <td width="26" rowspan="3" bgcolor="#d0d8de"><!--DWLayoutEmptyCell--> </td>    <td width="25" rowspan="3"><img src="images/centro.gif" width="25" height="25"></td>    <td width="383" height="4" valign="top"><img src="images/sha_dir.gif" width="383" height="4"></td>  </tr>  <tr>     <td height="11" align="left" valign="top" nowrap bgcolor="#FFFFFF"><img src="images/amarelo.gif" width="312" height="11"></td>  </tr>  <tr>     <td height="10"></td>  </tr>  <tr>     <td height="4" colspan="3"><img src="images/sha_esq.gif" width="316" height="4"></td>    <td></td>  </tr></table><br><table width="698" border="0" cellpadding="0" cellspacing="0" background="images/pontos.gif">  <!--DWLayoutTable-->  <tr>     <td height="10"></td>  </tr></table><br><form ACTION="<%=MM_editAction%>" METHOD="POST" name="form1">  <table width="698" height="53" border="0" cellpadding="0" cellspacing="0" bgcolor="#153c87">    <tr>       <td width="698" height="53" valign="middle"><font color="#000000"><strong><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif">::         Preencha o formulário abaixo para cadastrar-se no site do Condomínio         Edifícios Água Branca e Água Azul.<br>        :: Lembre-se: Seu nome de usuário e sua senha serão solicitados         para que você se identifique ao entrar no site.<br>        :: A qualquer momento clique em Seu Cadastro no menu principal para ver/alterar         seus dados cadastrais.</font></strong></font></td>    </tr>  </table>  <table width="698" border="0" cellpadding="0" cellspacing="1" bgcolor="#153c87">    <!--DWLayoutTable-->    <tr>       <td width="125" height="25" align="right" valign="middle" bgcolor="#d0d8de"><font color="#153c87" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Nome:           </strong></font></td>      <td width="571" height="30" valign="middle" bgcolor="#FFFFFF">            <input name="nome" type="text" id="nome" size="80"></td>    </tr>    <tr>       <td height="25" align="right" valign="middle" bgcolor="#d0d8de"><font color="#153c87" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Apartamento:          </strong></font></td>      <td height="30" valign="middle" bgcolor="#FFFFFF">   <input name="apto" type="text" id="apto" size="4" maxlength="4"></td>    </tr>    <tr>       <td height="25" align="right" valign="middle" bgcolor="#d0d8de"><font color="#153c87" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Edifício:          </strong></font></td>      <td height="30" valign="middle" bgcolor="#FFFFFF">   <input name="edificio" type="text" id="edificio" size="11" maxlength="11"></td>    </tr>    <tr>       <td height="25" align="right" valign="middle" bgcolor="#d0d8de"><font color="#153c87" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>E-mail:          </strong></font></td>      <td height="30" valign="middle" bgcolor="#FFFFFF">   <input name="email" type="text" id="email" size="30"></td>    </tr>    <tr>       <td height="25" align="right" valign="middle" bgcolor="#d0d8de"><font color="#153c87" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Nome         de Usuário:  </strong></font></td>      <td height="30" valign="middle" bgcolor="#FFFFFF">   <input name="usuario" type="text" id="usuario" size="8" maxlength="8">           <font color="#153c87" size="1" face="Verdana, Arial, Helvetica, sans-serif">*         O Nome de Usuário deve conter até oito caracteres (incluindo         letras e números)</font></td>    </tr>    <tr>       <td height="25" align="right" valign="middle" bgcolor="#d0d8de"><font color="#153c87" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Senha:          </strong></font></td>      <td height="30" valign="middle" bgcolor="#FFFFFF">   <input name="senha" type="text" id="senha" size="8" maxlength="8">          <font color="#153c87" size="1" face="Verdana, Arial, Helvetica, sans-serif">         * A Senha deve conter até oito caracteres (incluindo letras e números)</font>       </td>    </tr>    <tr>       <td height="25" valign="top" bgcolor="#d0d8de"><!--DWLayoutEmptyCell--> </td>      <td height="30" valign="middle" bgcolor="#d0d8de">   <input type="submit" name="Submit" value="Enviar">         <input type="reset" name="Submit2" value="Limpar campos"></td>    </tr>  </table>  <table width="698" height="14" border="0" cellpadding="0" cellspacing="0" bgcolor="#153c87">    <tr>       <td><div align="right"><img src="images/graf_dir.gif" width="19" height="14"></div></td>    </tr>  </table>  <input type="hidden" name="MM_insert" value="form1"></form><table width="698" border="0" cellpadding="0" cellspacing="0" background="images/pontos.gif">  <!--DWLayoutTable-->  <tr>     <td height="10"></td>  </tr></table><br></body></html>

Desde já agradeço a essa galera do Fórum que sempre salva minha pele hueheueh

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ninguém?? Só pq eu disse q a galera sempre me salva né? hehehe

Consegui uma maneira usando o Validate Form do DW q gerou o código:

function MM_validateForm() { //v4.0  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);    if (val) { nm=val.name; if ((val=val.value)!="") {      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');        if (p<1 || p==(val.length-1)) errors+='O campo '+nm+' deve conter um endereço de email válido.\n';      } else if (test!='R') { num = parseFloat(val);        if (isNaN(val)) errors+='O campo '+nm+' deve ser um número.\n';        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');          min=test.substring(8,p); max=test.substring(p+1);          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';    } } } else if (test.charAt(0) == 'R') errors += 'O campo '+nm+' é obrigatório.\n'; }  } if (errors) alert('O(s) seguinte(s) erros ocorreram:\n'+errors);  document.MM_returnValue = (errors == '');}

O problema é q esse validate mostra aquelas msg de erro padrão do windows e eu queria q o erro fosse mostrado na própria página. Alguém pode ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na minha opniao a forma mais indicada pra isso é JS.

você vai ter q fazer uma validação para cada campo do seu formulario.

Aki vai um exemplo:

<script language=javascript>function valida(){           dn = document.nomedoformulario;           //validar o campo1           if (dn.campo1.value == ""){                     alert("O campo " + dn.campo1.name + " deve ser preenchido!");                     dn.campo1.focus();                     return false;           }           //validar o campo2          if (dn.campo2.value == ""){                   alert("O campo " + dn.campo2.name + " deve ser preenchido!");                   dn.campo2.focus();                   return false;         }         return true;}</script>
E para chamar a função, acrescente o codigo na sua TAG form

OnSubmit="return valida()"
Exemplo:

<form method="post" name="cadastro" action="formaction.asp" onsubmit=="return valida()">

Espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Edgard Belladonna,Coloquei o código e testei não escrever nada no cadastro. Vi a mensagem naquela forma de alerta do Windows mas quando cliquei OK em vez de continuar na página CADASTRO fui redirecionado pra LOGIN, e os dados foram em branco para o banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu cara!Vou testar esse JS.Abraço

melhor identificar os objetos no js.... pra evitar erros ne... observe a alteracao... onde tem form e this.. qdo ele passa direto no js eh pq naum achou algum objeto e deu erro de execucao...
<script language=javascript>function valida(form){          //validar o campo1          if (form.campo1.value == ""){                    alert("O campo " + form.campo1.name + " deve ser preenchido!");                    form.campo1.focus();                    return false;          }          //validar o campo2         if (form.campo2.value == ""){                  alert("O campo " + form.campo2.name + " deve ser preenchido!");                  form.campo2.focus();                  return false;        }        return true;}</script><form method="post" name="cadastro" action="formaction.asp" onsubmit=="return valida(this)">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara na propria pagina, algo automatico, só com Javascript que vai aparecer Alert (mostrado aqui no toico mesmo) ou com javascript, pra ele escrever uma msg na pagina, mas não sei como fazer, senão só na hora de enviar quando fizer a verificação dai ele manda pra mesma pagina por exemplo e mostra o erro...

 

Voc~e pode fazer isso por querystring, por exemplo na hora de fazer a verificação na pagina seguinte se tiver em branco você volta na pagina que você estava (aonde te o cadastro), só que manda na url um numero por exemplo

 

cadastro.asp?erro=2

 

dai ao lado dos forms você faz uma verificação do tipo

 

erro=request.querystring("erro")<% if erro=2 then %>Preencha este campo por favor<% end if %>

É uma solução tb ;)

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.