no he visto tu ultimo codigo, me voy a basar en el codigo de tu primer post. el problema es que el
return true dentro del evento
onreadystatechange no afecta a la funcion
existeArticulo. es decir, cuando el evento retorna true, este valor se lo devuelve al objeto
ajax. significa que la funcion
existeArticulo devuelve
false o undefined.
intentalo de esta forma. cuando el articulo existe en la peticion que devuelve 'existente', llama la funcion
buscarArticulo.
Código:
function nuevoAjax(){
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 existeArticulo() {
var msj = document.getElementById('MsjVentas');
var art_a_buscar = document.getElementById('Articulo').value;
var mostrador = document.getElementById('mostrador');
if(document.getElementById(art_a_buscar) == undefined) {
var ajax=nuevoAjax();
ajax.open("POST", "/Libreria/tienda.ajax.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("accion=ExistenciaDeArticulo&IdArticulo="+art_a_buscar);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
var resultado = ajax.responseText;
if(resultado=='existente') {
var articuloId = document.createElement('div');
articuloId.id=art_a_buscar;
mostrador.appendChild(articuloId);
alert('existe');
buscarArticulo();
}
else {
msj.innerHTML = 'no existe indio pasmado';
alert('no existe');
}
}
}
}
else {
alert('ya existe objeto');
return true;
}
}
function buscarArticulo() {
var button = document.getElementById('buscar__');
var art_a_buscar = document.getElementById('Articulo').value;
button.disabled = true;
alert('entre');
if(document.getElementById('Unidades_'+art_a_buscar) == null) {
var unidades = 9;
var descuento = 0;
alert('entre1');
}else {
alert('entre2');
var unidades = document.getElementById('Unidades_'+art_a_buscar).value;
alert(unidades);
var descuento = document.getElementById('Descuento_'+art_a_buscar).value;
alert(descuento);
}
var ajax=nuevoAjax();
ajax.open("POST", "/Libreria/tienda.ajax.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("accion=CargarArticulo&IdArticulo="+art_a_buscar+"&Unidades="+unidades+"&Descuento="+descuento);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
var articuloId = document.getElementById(art_a_buscar);
articuloId.innerHTML = ajax.responseText;
}
}
button.disabled = false;
return false
}