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

problema cn onBlur(), no ejecuta ajax 2 veces

Estas en el tema de problema cn onBlur(), no ejecuta ajax 2 veces en el foro de Frameworks JS en Foros del Web. hola, tengo un problema q me esta matanto. vecesito verificar la existencia de un campo en el formulario. para empezar mostar un aviso si existe ...
  #1 (permalink)  
Antiguo 31/01/2010, 10:52
 
Fecha de Ingreso: enero-2010
Mensajes: 18
Antigüedad: 14 años, 3 meses
Puntos: 0
problema cn onBlur(), no ejecuta ajax 2 veces

hola, tengo un problema q me esta matanto. vecesito verificar la existencia de un campo en el formulario. para empezar mostar un aviso si existe o no, despues hacer otra cosa mas avanzada.

el problema, esque la funion ajax la llama cn el evento onBlur(), peroesta solo se ejecuta 1 vez.. despues no llama el metodo

espero me puedan ayudar:$

el codigo es el siguiente

Código PHP:
<html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Ingresar producto</title>

<
script languaje="Javascript">

function 
objetoAjax(){
    var 
xmlhttp=false;
    try {
        
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (
e) {
        try {
           
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (
E) {
            
xmlhttp false;
          }
    }

    if (!
xmlhttp && typeof XMLHttpRequest!='undefined') {
        
xmlhttp = new XMLHttpRequest();
    }
    return 
xmlhttp;
}

ajax=objetoAjax();

/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////

function check_Prov(){//tieneque arrojar true si el 'probeedor' existe

  
probeedor=document.getElementById("probeedor").value;
   

  
ajax.open("POST""doExist.php",true);
  
  
ajax.onreadystatechange=function() {
  if (
ajax.readyState==4) {
      
check_Provajax.responseText;
      
alert("mensaje "+check_Prov);
  }
  }

  
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

  
ajax.send("probeedor="+probeedor)

    }

</script>




</head>

<body>

<form name="nuevo_Art" action="" onSubmit="">

<label>check prov<input type="text" id="probeedor" onBlur="check_Prov()"></label>
   

</form>

</body>
</html> 
este es el php q mando a llamar

Código PHP:
<?php
function Conect(){                                        
    if (!(
$link=mysql_connect("localhost","root",""))){
        exit();
        }
    if (!
mysql_select_db("empresa",$link)){
        exit();
        }
return 
$link;}

    
$result=mysql_query("select * from proveedor",Conect());
$rutP=$_POST['probeedor'];



function 
doExist_Prov($rutP){
    
    
$doExist_Prov=false;
    
$link=Conect();
    
$result=mysql_query("select * from proveedor",$link);
    while(
$row mysql_fetch_array($result)) {
        if(
$row["rut_P"]==$rutP){
            
$doExist_Prov true;
    
        }
    }
//end while
    
    
if($doExist_Prov){ echo("este rut ya exiete"); }else{ echo("este rut es nuevo"); }
    
//return $doExist_Prov;
    
mysql_free_result($result);
}
//end doExist_Prov()

doExist_Prov($rutP);
//mysql_free_result($result);
?>
  #2 (permalink)  
Antiguo 31/01/2010, 20:10
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Respuesta: problema cn onBlur(), no ejecuta ajax 2 veces

loading...........

Pero... solo tienes una funcion en el onblur


Código PHP:
function check_Prov(){//tieneque arrojar true si el 'probeedor' existe

  
probeedor=document.getElementById("probeedor").value;
   

  
ajax.open("POST""doExist.php",true);
  
  
ajax.onreadystatechange=function() {
  if (
ajax.readyState==4) {
      
check_Provajax.responseText;
      
alert("mensaje "+check_Prov);
               
//AQUI DEBERIA ESTAR TU OTRA FUNCION NO?
               //AQUI DEBERIA ESTAR TU OTRA FUNCION NO?
               //AQUI DEBERIA ESTAR TU OTRA FUNCION NO?
               //AQUI DEBERIA ESTAR TU OTRA FUNCION NO?
               //AQUI DEBERIA ESTAR TU OTRA FUNCION NO?
               //AQUI DEBERIA ESTAR TU OTRA FUNCION NO?
               //AQUI DEBERIA ESTAR TU OTRA FUNCION NO?
               //AQUI DEBERIA ESTAR TU OTRA FUNCION NO?
               //AQUI DEBERIA ESTAR TU OTRA FUNCION NO?
               //AQUI DEBERIA ESTAR TU OTRA FUNCION NO?

  
}
  }

  
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

  
ajax.send("probeedor="+probeedor)

    } 

connection closed.
__________________

Maborak Technologies
  #3 (permalink)  
Antiguo 01/02/2010, 09:18
 
Fecha de Ingreso: enero-2010
Mensajes: 18
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: problema cn onBlur(), no ejecuta ajax 2 veces

Cita:
Iniciado por MaBoRaK Ver Mensaje
loading...........

Pero... solo tienes una funcion en el onblur
claro, pero esta fucnion ( y unica q tengo ) deberia ejecutarce por segunda, tercera y enecima vez cuando vuelvo a ejecutar el evento ( es decir, cuando cliqueo el campo y salgo de el ). sin embargo, esto no ocurre. el evento se ejecuta solo una vez (la primera),despues no se ejecuta y por ende no llama la funcion..

yo no busco q se ejecute otra funcion... solo que la q ya esta creada se llama mas de una vez..

nose si me entienes :S .. me tiene ya chato esto... nose que mas probar..
crees q si trato cn jQuery me vaya mejor?

--------------------------------------
EDITADO:
ya prove con jQuery y si funciona. usando la funcion load().
de todas formas me gustaria arreglarlo cn el codigo tipico de javascript :(

Última edición por tannyNogales; 01/02/2010 a las 14:08
  #4 (permalink)  
Antiguo 16/05/2010, 16:45
 
Fecha de Ingreso: mayo-2007
Mensajes: 23
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: problema cn onBlur(), no ejecuta ajax 2 veces

Hola a todos

Quisiera saber si pudiste solucionar este inconveniente y como lo hiciste, yo tengo el mismo problema, necesito q se ejecute una función de xajax cada vez q se de click en un boton, pero según veo no es posible y no se me ocurre algo más para solucionar esto.
  #5 (permalink)  
Antiguo 26/06/2011, 22:52
 
Fecha de Ingreso: abril-2008
Mensajes: 6
Antigüedad: 16 años
Puntos: 0
Respuesta: problema cn onBlur(), no ejecuta ajax 2 veces

Cita:
Iniciado por Krucom Ver Mensaje
Hola a todos

Quisiera saber si pudiste solucionar este inconveniente y como lo hiciste, yo tengo el mismo problema, necesito q se ejecute una función de xajax cada vez q se de click en un boton, pero según veo no es posible y no se me ocurre algo más para solucionar esto.
HOLA TENGO EL MISMO PROBLEMA... DESDE QUE COMENCE A TRABAJAR CON AJAX....

en mi caso el evento onLoad="",,, llama a una funcion la cual llama a AJAX,,, el mismo que llama al codebehind de .vb

ajax2=nuevoAjax();
ajax2.open("GET", "../secure/ajax_modulo_3_3_asignar_x_area.aspx?idcamp="+idcam p+"&idestr="+idestr+"&idarea="+idarea+"&idobj="+id obj+"", true);

cuando hago el seguimiento me ejecuta la primera vez, y luego en un segundo onload ya no entra al archivo ajax_modulo_3_3_asignar_x_area.aspx...

no se si se debe borrar o reiniciar alguna funcion del ajax2=nuevoAjax();...

cada vez que entra deberia reescribirme un grupo de variables

....... ajax_modulo_3_3_asignar_x_area.aspx (vb)

If Me.oDS_Datos_2.Tables.Count > 0 Then
If Me.oDS_Datos_2.Tables(0).Rows.Count > 0 Then
Dim I As Integer
'Response.ContentType = "text/plain"
Response.Write("'enlaces2':[")
For I = 0 To Me.oDS_Datos_2.Tables(0).Rows.Count - 1
v_cantidad2 = v_cantidad2 + 1
Dim v_idnombre As String = Me.oDS_Datos_2.Tables(0).Rows(I).Item("ID_NOMBRE")
Dim v_idobjeto As String = Me.oDS_Datos_2.Tables(0).Rows(I).Item("ID_OBJETO_G RAFICO")
Dim v_code As String = Me.oDS_Datos_2.Tables(0).Rows(I).Item("CODE_DESIGN _OBJETO_GRAFICO")

If I = Me.oDS_Datos_2.Tables(0).Rows.Count - 1 Then
Response.Write("{'idnombre':'" & v_idnombre & "','idobjeto':'" & v_idobjeto & "','vcode':'" & v_code & "'}")
Else
Response.Write("{'idnombre':'" & v_idnombre & "','idobjeto':'" & v_idobjeto & "','vcode':'" & v_code & "'},")
End If

Next


Response.Write("],'totales2':[{'cantidad_asignaciones':'" & v_cantidad2 & "','v_session':'" & v_Session & "'}]}")
Else
'Response.ContentType = "text/plain"
Response.Write("'enlaces2':[")
Response.Write("{'idnombre':'nn','idobjeto':'nn',' vcode':'nn'}")
Response.Write("],'totales2':[{'cantidad_asignaciones':'0','v_session':'" & v_Session & "'}]}")
End If
Else
'Response.ContentType = "text/plain"
Response.Write("{'enlaces2':[")
Response.Write("{'idnombre':'nn','idobjeto':'nn',' vcode':'nn'}")
Response.Write("],'totales2':[{'cantidad_asignaciones':'0','v_session':'" & v_Session & "'}]}")
End If

*********************************
solo ejecuta la primera vez, mas no la segunda...

saludos espero me puedan ayudar...

Alex

Etiquetas: ajax, onblur
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 14:09.