Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/10/2008, 06:08
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: validar que un registro no esté duplicado antes de insertar datos

alberto, me alegra que te animes a aportar ideas, pero en esta ocasión estas confundido. Según tu script, lo único que haces es insertar en la bd sin validar si ya esta ocupado ese "nick". De cualquier manera continua así

Con usar Ajax me refería a esto

formulario.html

Código:
<STYLE TYPE="text/css">
.vink {
font:11px verdana;
}

.vink a:link, .vink a:visited {
color: #ff6600;
text-decoration: none;
}

.vink a:hover, .vink a:active  {
color: #ff6600;
text-decoration: underline;
}

.capa {
background: #FFFFFF;
font: 1.1em lucida sans unicode;
color: #333333;
border:1px solid rgb(120,120,120);
width: 132px;
text-align: left;
padding-left: 6px;
padding-right: 6px;
padding-top: 2px;
padding-bottom: 2px;
position: absolute;
top: 30px;
left: 117px;
}
</STYLE>
<script language="javascript" type="text/javascript">
var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
var ns6 = (document.getElementById)? true:false

function captura_objeto(idnombre) {
    if (ns6)
    {
    return document.getElementById(idnombre);
    }
    else if (ie4)
    {
    return document.all[idnombre];
    }
    else if (ns4)
    {
    return document.layers[idnombre];
    }
    else
    {
    return null;
    }
}

function copiar(c) {
var obj = captura_objeto('txtHint')
    document.getElementById("txt1").value = c;
    if (obj.style.visibility == 'hidden')  obj.style.visibility= "visible";
            else obj.style.visibility= "hidden";
    }


var xmlHttp
function showHint(str) {
    if (str.length==0) { 
          document.getElementById("txtHint").innerHTML="";
         return;
      }
xmlHttp=GetXmlHttpObject()
    if (xmlHttp==null) {
          alert ("Your browser does not support AJAX!");
          return;
      } 
var url="AJAXprueba.asp";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
} 


function stateChanged() { 
    if (xmlHttp.readyState==4) { 
        document.getElementById("txtHint").innerHTML=xmlHttp.responseText;

var obj = captura_objeto('txtHint')
    if (obj.style.visibility == 'hidden')  obj.style.visibility= "visible";
    }
}


function GetXmlHttpObject() {
var xmlHttp=null;
    try
      {
  // Firefox, Opera 8.0+, Safari
      xmlHttp=new XMLHttpRequest();
      }
    catch (e)
      {
  // Internet Explorer
          try
            {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            }
          catch (e)
            {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
      }
    return xmlHttp;
}
</script> 
</head>
<body>
<form> 
Nombre Usuario:
<input type="text" id="txt1" onkeyup="showHint(this.value)" />
<div class="vink" style="margin:5px 0px 0px 10px"><div id="txtHint" class="capa" style="visibility:hidden;"><p></p></div></div> 
</form>
ajaxprueba.asp

Código asp:
Ver original
  1. <&#37;
  2. Dim SQL, rs, oConn
  3. Dim usuario
  4. usuario = Request.QueryString("q")
  5. set oConn = Server.CreateObject("ADODB.Connection")
  6. oConn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("./database.mdb")&";"
  7. SQL="Select nombre FROM usuarios WHERE nombre LIKE '"&usuario&"%'"
  8. set rs = oConn.Execute(SQL)
  9. if not rs.eof then
  10. Response.Write "ocupado"
  11. else
  12. Response.Write "libre"
  13. end if
  14. rs.Close
  15. set rs = nothing
  16. oConn.Close
  17. set oConn = nothing
  18. %>

Edita, cambia, etc.. para adaptarlo a tus necesidades

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;" />