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?