Foros del Web » Programando para Internet » Javascript »

ejecutar funciones consecutivas

Estas en el tema de ejecutar funciones consecutivas en el foro de Javascript en Foros del Web. tengo un formulario donde debo introduzco el codigo de un articulo y a traves de ajax compruebo su existencia y en caso afirmativo intento mostrar ...
  #1 (permalink)  
Antiguo 07/10/2014, 00:48
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
ejecutar funciones consecutivas

tengo un formulario donde debo introduzco el codigo de un articulo y a traves de ajax compruebo su existencia y en caso afirmativo intento mostrar los datos descriptivos del artículo.
el problema es que al introducir el codigo recupero bien la información, pero a continuacion cuando quiero actualizar los valores en el form estos todavia no tienen valor. De momento he colocado un boton que lanza esta segunda funcion y lo hace correctamente pero el usuario debo clickar.
he buscado en el foro y creo que es un problema de ajax de sincronizacion pero no consigo arreglarlo en mi programa.
estas son las funciones

Código HTML:
 <div class="row">        
                                       <div class="form-group">
                                            <label class="col-sm-1 control-label">Cod.</label>
                                            <div class="col-sm-1">
                                            <input type="text" class="form-control" maxlength="8" name="monVenta" id="monVenta" onBlur="MostrarConsulta('c_montura.php','divmontura');" />
                                            </div>                                            
                                            <div class="text-left col-sm-1">
                                                <a href="#" class="dropdown-toggle" data-toggle="dropdown" onClick="fracc_mon()">
                                                    <i class="fa fa-search"></i>
                                                </a>
                                            </div>
                                            <div class="col-sm-2">
                                            	<input type="text" class="form-control" name="modMontura" id="modMontura"  disabled>
                                            </div>
                                            <div class="col-sm-1">
                                                <input type="text" class="form-control" name="colMontura" id="colMontura" disabled>
                                            </div>
                                            <div class="col-sm-1">
                                                <input type="text" class="form-control" name="medMontura" id="medMontura"  disabled>
                                            </div>
                                            <div class="col-sm-1">
                                                <input type="text" class="form-control" name="pvpMontura" id="pvpMontura"  disabled>
                                            </div>
                                            <div name="divmontura" id="divmontura" style="visibility:hidden"></div>
                                        </div> <!-- /.form-group -->
                                 </div> <!-- /.row --> 
funcion mostral consulta que obtiene los datos del producto
Código:
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;
}

function MostrarConsulta(procphp,salida) {
    //donde se mostrará lo resultados byId
	divcontenidor = document.getElementById('divmontura');
	//valores de los cajas de texto byName
	ajaxmontura=document.formdetall.monVenta.value; 	
	//instanciamos el objetoAjax
	ajax=objetoAjax();
	//usando del medoto POST
	//archivo que realizará la operacion ->actualizacion.php
	ajax.open("POST", "c_montura.php",true);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			//mostrar los nuevos registros en esta capa
			divcontenidor.innerHTML = ajax.responseText
		}
	}
	//muy importante este encabezado ya que hacemos uso de un formulario
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	
	//enviando los valores
	ajax.send("codimon="+ajaxmontura);
	
}
y la funcion que divide y debe mostrar los campos
Código:
	/*  fracionar el contenido  */
    function fracc_mon() {
         var textinici= divmontura.innerHTML; 			 
		 if (textinici == "ND") {
			 alert('Montura no definida');
		 } else {				 
			 var textseparat = textinici.split('#');			
			 formdetall.modMontura.value= textseparat[0];
			 formdetall.colMontura.value= textseparat[1];
			 formdetall.medMontura.value=textseparat[2];         
			 formdetall.pvpMontura.value=textseparat[3];
			 formdetall.vtaImpMontura.value=textseparat[4];			 
			 /* formdetall.detallmontura.value="<img src='../weboptica/muntures/1022346.jpg'>	"; */
		 }
    } // fanal fraccionar
como ejecuto las dos funciones correlativas?
  #2 (permalink)  
Antiguo 07/10/2014, 01:18
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: ejecutar funciones consecutivas

Hola:

La segunda parte, si necesitas haber recibido los datos, deberías incluirla en la función que programas con la respuesta Ajax...

Código Javascript:
Ver original
  1. if (ajax.readyState==4) {
  2.     //mostrar los nuevos registros en esta capa
  3.     divcontenidor.innerHTML = ajax.responseText
  4.     // [COLOR="Red"]aquí el resto...[/COLOR]
  5. }

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 07/10/2014, 03:33
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
Respuesta: ejecutar funciones consecutivas

no entiendo la respuesta.
incluir la llamada a fracc_mon despues de divcontenidor.innerhtml=ajax.responseText.

???

Etiquetas: ajax, formulario, funcion, funciones, html, input, php, valor
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 17:04.