Foros del Web » Programando para Internet » Javascript »

Consulta con nodo en funcion

Estas en el tema de Consulta con nodo en funcion en el foro de Javascript en Foros del Web. Hola, tenmgo la siguiente funcion javascript : Código: function cargarProductos(grupo){ var ruta,fuente,cadena; var nodo; var b = document.getElementById("Produc"+grupo); if (b.style.display=="block"){ b.style.display="none"; }else{ cadena = ""; ...
  #1 (permalink)  
Antiguo 05/09/2011, 14:40
 
Fecha de Ingreso: junio-2011
Mensajes: 27
Antigüedad: 12 años, 10 meses
Puntos: 1
Pregunta Consulta con nodo en funcion

Hola, tenmgo la siguiente funcion javascript:

Código:
function cargarProductos(grupo){
	var ruta,fuente,cadena;
	var nodo;
	var b = document.getElementById("Produc"+grupo);
	
	if (b.style.display=="block"){
		b.style.display="none";
	}else{
		cadena = "";
		ruta = "xmlverificador.php?veri=46&mes=<?=$mes;?>&ano=<?=$ano;?>&grupo="+grupo;
		//prompt("",ruta);
		fuente = new ActiveXObject("Microsoft.XMLDOM");
		fuente.async= false;
		//fuente.load(ruta);
		nodo = fuente.documentElement;
		if (nodo.tagName!="OK"){
			for (i=0;i<nodo.childNodes.length;i++){
				//for (j=0;j<nodo.childNodes[i].childNodes.length;j++){
					cadena += '<table border="1" cellpadding="0" cellspacing="0" width="100%">'
					cadena += '<tr>';
					cadena += '<td colspan="2">'+nodo.childNodes[i].childNodes[0].text+" - "+nodo.childNodes[i].childNodes[1].text+'</td>';
					cadena += '<td width="260">';
						cadena += '<table border="1" cellpadding="0" cellspacing="0" width="100%">';
							cadena += '<tr align="right">';
								cadena += '<td width="26%">'+nodo.childNodes[i].childNodes[2].text+'</td>';
								cadena += '<td width="37%">'+nodo.childNodes[i].childNodes[3].text+'</td>';
								cadena += '<td width="37%">'+nodo.childNodes[i].childNodes[4].text+'</td>';
							cadena += '</tr>';
						cadena += '</table>';
					cadena += '</td>';
					cadena += '<td width="195" align="center">';
						cadena += '<table border="1" cellpadding="0" cellspacing="0" width="100%">';
							cadena += '<tr align="right">';
								cadena += '<td width="50%">'+nodo.childNodes[i].childNodes[5].text+'</td>';
								cadena += '<td width="50%">'+nodo.childNodes[i].childNodes[6].text+'</td>';
							cadena += '</tr>';
						cadena += '</table>';
					cadena += '</td>';
					cadena += '</tr>';
					cadena += '</table>';
					//alert(cadena);
					
					
				//}
			}
			b.innerHTML = cadena;
			b.style.display="block";
		}	
	}
el veri que se llama anteriormente es este:

Código:
if ($veri==46){
	
		require("abredb.php");
		
		$mes = $_GET["mes"];
		$ano = $_GET["ano"];
		$grupo = $_GET["grupo"];
		//En esta variable se guardan las series de  las Guias de Despacho
		$series_gd = "'0001','0002','0003','0004','0005'";

		echo "<?xml version='1.0' encoding='ISO-8859-1'?>";

		$sql = "select * from vfact_ven_marg_product where mes = '$mes' and \"año\" = '$ano' and id_grupo = '$grupo' and serie not in ($series_gd);";
		//echo $sql;
		$resp = pg_query($conexion,$sql);
		if (pg_num_rows($resp)!=0){		
			echo "<PRINCIPAL>";
			while ($tb = pg_fetch_array($resp)){
				$porcdesc = (100 - $tb["porcdescto1"])/ 100;
				$valorfina = $tb["valor"] * $porcdesc;
				echo "<producto>";
					echo "<codigo>".trim($tb["cod_prod"])."</codigo>";
					echo "<descripcion>".especiales(trim($tb["desc_prod"]))."</descripcion>";
					echo "<unidades>".number_format(trim($tb["cantidad"]),0,",",".")."</unidades>";
					echo "<valor>".number_format(trim($valorfina),0,",",".")."</valor>";
					echo "<costo>".number_format(trim($tb["costo"]),0,",",".")."</costo>";
					$margen_pesos = $valorfina-$tb["costo"]; 
					if ($tb["costo"]==0){
						$margen_porc = 100;
					}else{
						$margen_porc = ($margen_pesos * 100) / $valorfina;
					}
					
								
					echo "<margen_ps>".number_format($margen_pesos,0,",",".")."</margen_ps>";
					echo "<margen_pc>".number_format($margen_porc,2,",",".")."</margen_pc>";
					//echo "<margen_ps>".number_format(trim($tb["margen_pesos"]),0,",",".")."</margen_ps>";
					//echo "<margen_pc>".number_format(trim($tb["margen_porc"]),2,",",".")."</margen_pc>";
				echo "</producto>";
			}
			echo "</PRINCIPAL>";
		}else{
			echo "<OK></OK>";
		}
		
		
		pg_close($conexion);
		
	}
eso me muestra una ventana con unos botones, al presionarlos deberia mostrarme un listado de productos, pero en lugsr de eso obtengo un mensaje que dice;"Error: No se puede obtener valor de la propiedad 'tagName': el objeto es nulo o está sin definir"

Alguien me explica porque me dice eso si el tagname es "OK"
  #2 (permalink)  
Antiguo 05/09/2011, 14:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Consulta con nodo en funcion

Me pregunto, ¿el error que recibes es de Javascript o PHP?

Ahora... ¿por qué usar un elemento ActiveX cuando puedes usar jQuery para parsear y acceder al DOM?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/09/2011, 15:05
 
Fecha de Ingreso: junio-2011
Mensajes: 27
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Consulta con nodo en funcion

El error es javascript, lo hago con activeX por que asi me dijeron que tenia que ser, no fue mi eleccion S:
  #4 (permalink)  
Antiguo 05/09/2011, 16:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Consulta con nodo en funcion

Bien, si el error es de Javascript, ¿por qué has preguntado en el foro de PHP?

Además... ¿quien te obligó a usar ActiveX? ¿trabajo de la escuela? ¿tu abuelito?

Hay que actualizarse, dicho componente ActiveX solo funciona con IE, y bueno, ¿a estas alturas del partido quien sigue usando ActiveX?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: nodo, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:05.