Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/12/2008, 12:35
Netzai
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 16 años, 7 meses
Puntos: 0
error con variables de conexion

Saludos

Estoy teniendo problemas con las conexiones concurrentes. Tengo una página principal en la cual muestro un resumen del carrito, importe y artículos. Está enfocada a agentes de ventas que levantan pedidos para sus clientes. Por lo que al entrar en la página de "cambiar cliente" firefox me marca error en que "cnx2 is undefinded" y no termina de cargar el resumen del carrito dejandome los campos en blanco.
Ya habia tenido un error similar pero donde no funcionaba era en IE.

Aqui el código de la subpágina y en rojo donde me marca el error
Código:
var cnx2;
var text;
function chngCli()
{
	var sel = document.getElementById("slCli")
	var idCli =  sel.options[sel.selectedIndex].getAttribute('value');
	text = sel.options[sel.selectedIndex].text;	
	mandaCli(idCli,text);
}

function mandaCli(id,txt)
{    
  var pag = 'scripts/jx_chngCli.asp?id='+ id + '&txt=' + txt ;
  cnx2 = nuevoAjax();
  cnx2.onreadystatechange = procesarEventos;
  cnx2.open('GET',pag ,true);
  cnx2.send(null);
}

function procesarEventos()
{		
	if(cnx2.readyState == 4 && cnx2.status == 200)
	{		
		var lbl = document.getElementById('d_clie');		
		lbl.innerHTML = 'Cliente : '+ text
		window.location = 'index.asp?nav=ini';
		alert('cliente cambiado');		
		return;
	}
	
	if(cnx2.readyState == 4 && cnx2.status == 500)
	{
		alert('El cliente seleccionado no tiene articulos asignados');
		return;
	}
}
//***************************************
//Funciones comunes 
//***************************************


function addEvent(elemento,nomevento,funcion,captura)
{
  if (elemento.attachEvent)
  {
    elemento.attachEvent('on'+nomevento,funcion);
    return true;
  }
  else  
    if (elemento.addEventListener)
    {
      elemento.addEventListener(nomevento,funcion,captura);
      return true;
    }
    else
      return false;
}


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;
}
y este es el código ajax de la página principal

Código:
addEvent(window,'load',carga_importe,false);

var cl_cnx1;

function carga_importe()
{
  cl_cnx1=crearXMLHttpRequest();
  
  if (window.ActiveXObject)
  { //es interné explorer
  	  
	  cl_cnx1.onreadystatechange = query_edocta;
	  cl_cnx1.open("POST", '../Scripts/jx_importe.asp', true);
	  cl_cnx1.send(null);
  }
  else
    if (window.XMLHttpRequest)
      { //tonces se supones es cualquier otro que si funciona 
	  	  
		  cl_cnx1.onreadystatechange = procesarEventos;
		  cl_cnx1.open('GET','../jx_importe.asp', true);
		  cl_cnx1.send(null);
	  }
}

function query_edocta()
{ //funcion para explorer
	var epr = document.getElementById('cli_importe');
	
	if(cl_cnx1.readyState == 4 && cl_cnx1.status ==200)
	{
	 var xml = parseFloat(cl_cnx1.responseText);
	 //var mat = xml.getElementsByTagName('SALDO');
	 //alert(xml); 
	 f=dynapi.functions;
	 var hid_imp = parseFloat(document.getElementById("hid_tx").value);	
	 var mon = document.getElementById("hid_moneda").value;
	 var total = document.getElementById("cli_importe");
	 var num = (xml * ((hid_imp/100)+1));
	 num = f.formatNumber(f.toFloat(num),'#,###,##0.00');	 
	 var txt = 'Total: ' + num + ' ' + mon;	 
	 
	 epr.innerHTML = txt;
	}
	else 
	{
		epr.innerHTML = 'Total: cargando...';
	}
}

function procesarEventos()
{	
	if(cl_cnx1.readyState == 4)
		if(cl_cnx1.status==200)
		{
			 //alert("cliente");
			 //var xml = cli_cl_cnx1.responseText;			 						 
			 xml = cl_cnx1.responseXML;
			 var can = xml.getElementsByTagName('importe');
			 var importe = can[0].firstChild.nodeValue;

		 f=dynapi.functions;

		 
		 var hid_imp = document.getElementById("hid_tx").value;	
		 if (hid_imp == null)
		 { hid_imp = 0;}
		 var mon = document.getElementById("hid_moneda").value
		 var total = document.getElementById("cli_importe");
		 var num = (importe * ((hid_imp/100)+1));
		 var txt = 'Total: ' + (f.formatNumber(num,'#,###,##0.00')) + ' ' + mon;
		 
		 total.innerHTML = txt;
		}	
}

//***************************************
//Funciones comunes 
//***************************************


function addEvent(elemento,nomevento,funcion,captura)
{
  if (elemento.attachEvent)
  {
    elemento.attachEvent('on'+nomevento,funcion);
    return true;
  }
  else  
    if (elemento.addEventListener)
    {
      elemento.addEventListener(nomevento,funcion,captura);
      return true;
    }
    else
      return false;
}

function crearXMLHttpRequest() 
{
  var xmlHttp=null;
  if (window.ActiveXObject) 
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  else 
    if (window.XMLHttpRequest) 
      xmlHttp = new XMLHttpRequest();
  return xmlHttp;
}