Foros del Web » Programando para Internet » Javascript »

Que veis mal en este codigo

Estas en el tema de Que veis mal en este codigo en el foro de Javascript en Foros del Web. <HTML> <HEAD> <TITLE>Ejemplo de un cuadro prompt</TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE ="Javascript"> var producto; var tipoproducto; var precio; var unidades; unidades = prompt("Introduzca el numero ...
  #1 (permalink)  
Antiguo 06/05/2004, 05:26
 
Fecha de Ingreso: diciembre-2002
Mensajes: 130
Antigüedad: 21 años, 11 meses
Puntos: 0
Que veis mal en este codigo

<HTML>
<HEAD>
<TITLE>Ejemplo de un cuadro prompt</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE ="Javascript">
var producto;
var tipoproducto;
var precio;
var unidades;

unidades = prompt("Introduzca el numero de unidades")
while (unidades != 0 && unidades != null){
function tipo_de_producto(tipo_producto){
switch (tipoproducto) {
case "1":
precio = 400;
break;
case "2":
precio = 300;
break;
case "3":
precio = 200;
break;
case "4":
precio = 100;
break;
}
}
function IVA(){
if (unidades < 10){
var IVA ="16%";
}
else
{
var IVA ="4%";
}

function precio_con_IVA(){
if (unidades < 10){
var precioconIva= (precio * unidades) * 1.16;
}
else
{
var precioconIva= (precio * unidades) * 1.04;
}
}
tipo_de_producto();
IVA();
precio_con_IVA();
producto = prompt("Introduzca nombre del producto");
tipoproducto = prompt("Introduzca tipo del producto (Del 1 al 4):");

alert("Producto: " + producto + " Tipo de Producto: " + tipoproducto + " Unidades: " + unidades + " Precio Total: " + precioconIva + " IVA Aplicado: " + IVA);

unidades = prompt("Introduzca el numero de unidades")
}
}
</SCRIPT>
</BODY>
</HTML>
  #2 (permalink)  
Antiguo 06/05/2004, 06:32
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años
Puntos: 5
ala aqui tienes:

Código:
<HTML>
<HEAD>
<TITLE>Ejemplo de un cuadro prompt</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE ="Javascript">
var producto;
var tipoproducto;
var precio;
var unidades;
var precioconIva;

unidades = prompt("Introduzca el numero de unidades");
while (unidades != 0 && unidades != null){

	function tipo_de_producto(tipo_producto){
		switch (tipoproducto) {
			case "1":
				precio = 400;
				break;
			case "2":
				precio = 300;
				break;
			case "3":
				precio = 200;
				break;
			case "4":
				precio = 100;
				break;
		}
	}
	
	function IVA() {
		if (unidades < 10) {
			var IVA ="16%";
		} else {
			var IVA ="4%";
		}
	}

	function precio_con_IVA() {
		if (unidades < 10) {
			var precioconIva= (precio * unidades) * 1.16;
		} else {
			var precioconIva= (precio * unidades) * 1.04;
		}
	}

	tipo_de_producto();
	IVA();
	precio_con_IVA();

	producto = prompt("Introduzca nombre del producto");
	tipoproducto = prompt("Introduzca tipo del producto (Del 1 al 4):");
	unidades = prompt("Introduzca el numero de unidades")

	alert("Producto: " + producto + "\n Tipo de Producto: " + tipoproducto + "\n Unidades: " + unidades + "\n Precio Total: " + precioconIva + "\n IVA Aplicado: " + IVA);

}
</SCRIPT>
</BODY>
</HTML>
__________________
Usuario registrado de Linux #288725
  #3 (permalink)  
Antiguo 07/05/2004, 01:51
 
Fecha de Ingreso: diciembre-2002
Mensajes: 130
Antigüedad: 21 años, 11 meses
Puntos: 0
Hola he retocado un poco el codigo pq habia algunos apartados que no funcionaban. Ahora solo me falla el apartado que deberia de mostrarme el precio con IVA del producto, me muestra undefinided. Creo que elproblema esta que el switch no me devuelve precio.

Pq puede ser.

Este es el codigo:

<HTML>
<HEAD>
<TITLE>Ejemplo de un cuadro prompt</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE ="Javascript">
var producto;
var tipoproducto;
var precio;
var unidades;
var precioconIva;
var IVA_producto;

unidades = prompt("Introduzca el numero de unidades");
while (unidades != 0 && unidades != null){

function tipo_de_producto(tipoproducto){
switch (tipoproducto) {
case "1":
precio = 400;
return precio;
break;
case "2":
precio = 300;
return precio;
break;
case "3":
precio = 200;
return precio;
break;
case "4":
precio = 100;
return precio;
break;
}
}

function IVA(unidades) {
if (unidades < 10) {
IVA_producto ="16%";
} else {
IVA_producto ="4%";
}
}

function precio_con_IVA(precio,unidades) {
if (unidades < 10) {
var precioconIva= (precio * unidades) * 1.16;
} else {
var precioconIva= (precio * unidades) * 1.04;
}
}

tipo_de_producto();
IVA(unidades);
precio_con_IVA(precio,unidades);

producto = prompt("Introduzca nombre del producto");
tipoproducto = prompt("Introduzca tipo del producto (Del 1 al 4):");

alert("Producto: " + producto + "\n Tipo de Producto: " + tipoproducto + "\n Unidades: " + unidades + "\n Precio Total: " + precioconIva + "\n IVA Aplicado: " + IVA_producto);

unidades = prompt("Introduzca el numero de unidades");
}
</SCRIPT>
</BODY>
</HTML>
  #4 (permalink)  
Antiguo 07/05/2004, 02:30
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años
Puntos: 5
Oye, por que no te molestas en leer el codigo que te puse? te da undefined por que la variable la redefines dentro de una funcion!!!!!!!



Código:
precioconIva = ....
no le pongas var por delante ya que redefines la variable y queda englobada solo en el ambito de la funcion ,es decir no puede ser accedida desde fuera de esa funcion .... por eso te da error.

__________________
Usuario registrado de Linux #288725

Última edición por epplestun; 07/05/2004 a las 02:49
  #5 (permalink)  
Antiguo 07/05/2004, 02:40
 
Fecha de Ingreso: diciembre-2002
Mensajes: 130
Antigüedad: 21 años, 11 meses
Puntos: 0
Lo siento pero el codigo que tu me diste no funcionaba, ojala hubiese funcionado, si no te lo diría.

Y lo que dices de que hay declarar var precioIVA, no se si te has dado cuenta de que esta declarado var precioconIVA que es lo que utilizo y no me sale undefinided sino Nan que al escribirlo me habia confundido.

Y eso de que leas, suelo leer las cosas antes de utilizarlas, y las compruebo pero si no funcionan mejor decirlo, por si acaso quiere utilizar el codigo alguien.

Saludos.
  #6 (permalink)  
Antiguo 07/05/2004, 02:58
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años
Puntos: 5
Disuclpa, he pagado los platos rotos contigo ... estoy mirandome tu code ahora a ve si te lo soluciono
__________________
Usuario registrado de Linux #288725
  #7 (permalink)  
Antiguo 07/05/2004, 03:02
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años
Puntos: 5
ale ya funciona jeje

Código:
<HTML>
<HEAD>
<TITLE>Ejemplo de un cuadro prompt</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE ="Javascript">
var producto;
var tipoproducto;
var precio;
var unidades;
var precioconIva;
var IVA_producto;

unidades = prompt("Introduzca el numero de unidades");

producto     = prompt("Introduzca nombre del producto");
tipoproducto = prompt("Introduzca tipo del producto (Del 1 al 4):");
//while (unidades != 0 && unidades != null){

function tipo_de_producto(tipoproducto){
	switch (tipoproducto) {
		case "1":
			precio = 400;
			break;
		case "2":
			precio = 300;
			break;
		case "3":
			precio = 200;
			break;
		case "4":
			precio = 100;;
			break;
	}
	return precio;
}

function IVA(unidades) {
	if (unidades < 10) {
		IVA_producto = "16%";
	} else {
		IVA_producto = "4%";
	}
}

function precio_con_IVA(precio,unidades) {
	if (unidades < 10) {
		precioconIva = (precio * unidades) * 1.16;
	} else {
		precioconIva = (precio * unidades) * 1.04;
	}
}

tipo_de_producto(tipoproducto);
IVA(unidades);
precio_con_IVA(precio,unidades);

alert((precio * unidades));
alert("Producto: " + producto + "\n Tipo de Producto: " + tipoproducto + "\n Unidades: " + unidades + "\n Precio Total: " + precioconIva + "\n IVA Aplicado: " + IVA_producto);

//unidades = prompt("Introduzca el numero de unidades");
//}
</SCRIPT>
</BODY>
</HTML>
tenias que pasarle como paremetro a la funcion el valor
__________________
Usuario registrado de Linux #288725
  #8 (permalink)  
Antiguo 07/05/2004, 03:50
 
Fecha de Ingreso: diciembre-2002
Mensajes: 130
Antigüedad: 21 años, 11 meses
Puntos: 0
Ahora si funciona. Muchas gracias.
  #9 (permalink)  
Antiguo 07/05/2004, 03:56
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años
Puntos: 5
para eso estamos
__________________
Usuario registrado de Linux #288725
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:25.