Ver Mensaje Individual
  #10 (permalink)  
Antiguo 08/05/2009, 17:43
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: JavaScript solo puede abrir una vez un documento?

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
}