Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2014, 00:48
mikil
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 22 años, 6 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?