Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Validacion!

Estas en el tema de Validacion! en el foro de Frameworks JS en Foros del Web. Saludos ... Actualmente estoy realizando una serie de formularios el cual tiene un campo que es numerico este campo identifica el numero del formulario. Lo ...
  #1 (permalink)  
Antiguo 09/05/2006, 13:13
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 10 meses
Puntos: 96
Exclamación Validacion!

Saludos ...

Actualmente estoy realizando una serie de formularios el cual tiene un campo que es numerico este campo identifica el numero del formulario. Lo que quiero realizar es que el valide el numero del formulario con mi B.D. Indicandome si el numero digitado ya existe, al momento que intente pasar a otro campo!!..

La unica forma que pense que podria solucionar este problema era llevando una variable de php a Js. pero no me funciona correctamente. Esto mediante unos eventos que maneja js que al momento que el usuario oprima la tecla caps lock o intente pasar a otro campo me muestre un alert indicandome el error. Pero me indica una persona que con AJAX es mas factible sacar esta validacion. Espero que me puedan dar una manito ya que no tengo conocimientos de AJAx y debo solucionar este inconveniente lo mas pronto posible..


Nano
  #2 (permalink)  
Antiguo 09/05/2006, 18:25
Avatar de DjFaramir  
Fecha de Ingreso: febrero-2003
Ubicación: La Plata, Buenos Aires, Argentina
Mensajes: 131
Antigüedad: 21 años, 10 meses
Puntos: 0
si usas el evento onblur() de javascript podes llamar a una funcion que te valide el contenido del textbox...
__________________
See you... y Tolkien... mucho Tolkien...
  #3 (permalink)  
Antiguo 10/05/2006, 08:51
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 10 meses
Puntos: 96
Exclamación

Cita:
Iniciado por DjFaramir
si usas el evento onblur() de javascript podes llamar a una funcion que te valide el contenido del textbox...

Si actualmente lo estoy desarrollando asi mediante el input capturo los datos y ejecuto el evento Onblur. Cuando lo desarrollo con validaciones normales me funciona. Pero cuando lo quiero incorporar con php no!!.. mira te muestro el pedacito de la function
Código PHP:
function valida_vacio(campo1,campo2)
        { 
          
         <?php
         $radicado
=mysql_query("SELECT numero FROM planilla                       $radicado1= mysql_fetch_array($radicado);         
           $radicado2= $radicado1['numero'];
         ?>
             if (campo1.value == "" || campo1.value == " " || campo1.value.length <=6 || campo1.value== '<?php $radicado2; ?>' || isNaN(campo1.value) )
               {alert ('DEBE CAPTURAR UN VALOR VALIDO EN '+campo2);
            campo1.focus()
            
               }
    
        }
Espero cualquier ayuda que me puedan brindar
  #4 (permalink)  
Antiguo 10/05/2006, 10:57
Avatar de DjFaramir  
Fecha de Ingreso: febrero-2003
Ubicación: La Plata, Buenos Aires, Argentina
Mensajes: 131
Antigüedad: 21 años, 10 meses
Puntos: 0
Busqueda

veamos...

hay un codigo para manejar el objeto ajax que publicaron en uno de los post de este foro que es el que voy a usar para mostrarte una forma...

Código PHP:
function consultar(paginarespuestametodovariables){
  
// Podríamos indicar que estamos cargando los datos.... que espere
  // document.getElementById(respuesta).innerHTML = 'Cargando datos...';
  // Preparación de la variable 'pagina' en caso de que se haga uso del metodo GET
if(metodo == 'GET'){
    
pagina pagina '?' variables;
  }
  else{
    if(
metodo == ''){
      
metodo 'POST';
    }
  }
  
// Compatibilidad con FireFox, Opera y cualquier otro BUEN navegador
  
if(typeof(XMLHttpRequest) != 'undefined'){
    try{
      var 
satelite = new XMLHttpRequest();
    }
    catch(
e){ }
  }
  else{
    
// Compatibilidad para el navegador más ASQUEROSO del planeta [ IE ]
    
try{
      var 
satelite = new ActiveXObject('Microsoft.XMLHTTP');
    }
    catch(
e){
      var 
satelite = new ActiveXObject('Msxml2.XMLHTTP');
    }
  }
  
// una vez incializado el objeto y definido en el contexto de nuestro script
  // Intentaremos abrir la conexión a la dirección indicada por la variable 'pagina'
  
try{
    
// esto bien podría cambiar a "satelite.open('GET',pagina,true);" si se desea pasar los datos mediante método GET
    
satelite.open(metodo,pagina,true);
  }
  catch(
e){
    return 
false;
  }
  
// Esta variable envía una cabecera indicando que enviaremos los datos método 'post' en forma urlencoded
  // ejemplo ("mi_variable=cosa&otra_variable=otra_cosa");
  
satelite.setRequestHeader('Content-Type''application/x-www-form-urlencoded');
  
// Enviamos los datos 'elementos'
  
satelite.send(variables);
  try{
    
// Justo cuando el estatus de la petición cambia esperamos a que sea igual a 4 que es igual a OK.
    
satelite.onreadystatechange = function(){
      if(
satelite.readyState == 4){
        
// ¡¡¡ Listo !!!, ahora ya tenemos el resultado y podemos acceder a él desde 'satelite.responseText'
        // El resultado lo vamos a escribir en el elemento 'respuesta' ...
        
document.getElementById(respuesta).innerHTML satelite.responseText
      
}
    }
  }
  catch(
e){
    return 
false;
  }
  return 
true;

(mi conocimiento de javascript es minimo, asi que quizas son rebuscadas las soluciones, seria cuestion de limpiarlas si estas mas al tanto)

ese seria nuestro objeto el cual procesaria las variables que le envies, pero primero deberias consguir las variables que los campos... asi que una funcion chiquita...

Código PHP:
function armado(pagina,div){
_respuesta div
_pagina 
pagina
_campo1 
document.getElementById("campo1").value
_campo2 
document.getElementById("campo2").value
variables
="campo1="+_campo1+"&campo2="+_campo2

consultar
(_pagina,_respuesta,"GET",variables);
}; 
donde pagina es la pagina php que procesara los datos... y div es donde se mostrara (en este caso no seria ninguno, pero te lo paso como lo uso yo si precisas mostrar algo mas en un lugar especifico)

a esa funcion la llamas desde el onBlur... onblur='armado("validacion.php","");'

entonces en el php de validacion recibirias las variables en php para poder hacer todas las comparaciones...

Código PHP:
<?php
$campo1
=$_GET["campo1"];
$campo2=$_GET["campo2"];

$radicado=mysql_query("SELECT numero FROM planilla"
$radicado1mysql_fetch_array($radicado);                    
$radicado2$radicado1['numero'];
$largo=strlen(trim($campo1));
$campo2=trim($campo2);
if ((
$campo1 != "" ) and ($campo2 != "") and ($largo >= 6) and ($campo1  != $radicado2)){
         if (
is_int($campo1)){
               echo 
"true";
         }else{
               echo 
"false";
}else{
echo 
"false";
};
ahi ya tendriamos un resultado, el satelite.responseText devolvera el texto que salga en validacion.php... que va a ser false en caso de no cumplir los requisitos... asi que ya tendriamos sobre que trabajar...

volvamos al objeto... pero a la ultima funcion nomas...

Código PHP:
satelite.onreadystatechange = function(){
      if(
satelite.readyState == 4){
        
// ¡¡¡ Listo !!!, ahora ya tenemos el resultado y podemos acceder a él desde 'satelite.responseText'
        // El resultado lo vamos a escribir en el elemento 'respuesta' ...
        
document.getElementById(respuesta).innerHTML satelite.responseText
      
}
    } 
a esto si en vez de decirlo que lo muestre le hacemos una verificacion...

asi que en vez de
Código PHP:
document.getElementById(respuesta).innerHTML satelite.responseText 
ponemos

Código PHP:
if (satelite.respondeText == "false") {
                  
alert("DEBE CAPTURAR UN VALOR VALIDO EN '+campo2")
                  
campo1.focus()

Deberia generar el alert que estas buscando con los datos validados...


CREO que con esto ya deberia darte un resultado, lo hice recien en el momento quizas puede haber algun error de escritura en el codigo pero la logica seria esa... como no te lo podia explicar con palabras de una manera entendible lo pase en modo practico...

proba y modifica :P
__________________
See you... y Tolkien... mucho Tolkien...
  #5 (permalink)  
Antiguo 10/05/2006, 13:45
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 10 meses
Puntos: 96
Hola te agradezco por la gran ayuda que me has brindado voy hacer las pruebas ...
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 23:27.