HTML - Problema con javascript embebido

 
Vista:
sin imagen de perfil

Problema con javascript embebido

Publicado por Giuliano (13 intervenciones) el 09/10/2013 19:20:08
Bueno el caso es que introduje un codigo javascript en un fichero html pero no funciona, no da error alguno, ya me he asegurado de tener el javascript activado en el navegador. Probe con Chrome e IE8.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<html>
	<head>
		<title>Ferreteria</title>
		<script language="JavaScript">
		var almacen= new Array([100,"Tornillo",20,30],[50,"Tuercas",10,30]);
 
		function Stock(){
			var x;
			for (x=0,x<almacen.length,x++){
				s+="codigo" + almacen[x,0] + "Descripcion" + almacen[x,1] + "Precio" + almacen [x,2] + "Existencia" + almacen[x,3] +"\n";
 
			}
			alert(s);
		}
		</script>
	</head>
	<body>
		<table border=5 align="center" width=600px>
			<tr>
				<td align="center" colspan=2;>
					<input type="button" value="Ver Stock" name="b1" onClick="Stock();"/>
				</td>
			</tr>
 
				<tr align="left" border=5>
					<td>
						<input type="button" value="Alta" name="b2" onClick="Alta"/>
					</td>
					<td>
						<p>Codigo de articulo<input type="text" value="" name="codart"/></p>
						<p>Descripcion<input type="text" value="" name="descripcion"/></p>
						<p>PVP<input type="text" value="" name="pvp"/></p>
						<p>Existencia<input type="text" value="" name="existencia"/></p>
					</td>
				</td>
 
			</tr>
			<tr align="left" border=5>
					<td>
						<input type="button" value="Buscar art." name="b2" onClick="Buscar"/>
					</td>
					<td>
						<p>Codigo de articulo<input type="text" value="" name="codart"/></p>
					</td>
				</td>
 
			</tr>
				<tr align="left" border=5>
					<td>
						<input type="button" value="Vender art." name="b3" onclick="Vender"/>
					</td>
					<td>
						<p>Codigo de articulo<input type="text" value="" name="codart"/></p>
						<p>Cantidad<input type="text" value="" namne="cantidad"/></p>
					</td>
				</td>
					<tr>
				<td align="center" colspan=2>
					<input type="button" value="Ver estado de caja" name="b4" onclick="vercaja"/>
				</td>
			</tr>
 
			</tr>
		</table>
	</body>
</html>
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 1.144
Oro
Ha mantenido su posición en HTML (en relación al último mes)
Gráfica de HTML

Problema con javascript embebido

Publicado por xve (1543 intervenciones) el 09/10/2013 21:25:49
Hola Giuliano, tienes un par de errores...
1.- Tienes que definir la variable s. no puedes añadirle un texto a algo que no existe.
1
var s="";

El bucle for, hay que separar los parámetros con ; no con ,:
1
for (x=0;x<almacen.length;x++){

Utiliza las herramientas del chrome (F12)...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con javascript embebido

Publicado por Giuliano (13 intervenciones) el 09/10/2013 22:58:37
gracias.. ahora funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con javascript embebido

Publicado por Giuliano (13 intervenciones) el 11/10/2013 20:38:25
bueno el caso es que en el mensaje que me muestra dice undefined varias veces, y no se que es.
Tambien muestra 2 veces toda la info del vector.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con javascript embebido

Publicado por Jose Manuel (20 intervenciones) el 12/10/2013 17:20:07
Hola:

En el bucle, está mal la sintaxis para acceder correctamente a los elementos del array. El valor undefined, es porque el error hacía que se intentara acceder a un elemento del array que no existía y por tanto no estaba definido. Aquí tienes el código modificado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<html>
    <head>
        <title>
            Ferreteria
        </title>
 
        <script type="text/javascript">
            var almacen = new Array([100,"Tornillo",20,30],[50,"Tuercas",10,30]);
 
            function Stock(){
                var s = "";
                var x = "";
 
                for ( x = 0; x < almacen.length; x++ ) {
                    s += "Codigo: " + almacen [x][0] + "#Descripcion: " + almacen[x][1] + "#Precio: " + almacen [x][2] + "#Existencia: " + almacen[x][3] + "\n";
                }
                alert(s);
            }
        </script>
    </head>
    <body>
        <table border=5 align="center" width=600px>
            <tr>
                <td align="center" colspan=2;>
                    <input type="button" value="Ver Stock" name="b1" onClick="Stock();"/>
                </td>
            </tr>
            <tr align="left" border=5>
                <td>
                    <input type="button" value="Alta" name="b2" onClick="Alta"/>
                </td>
                <td>
                    <p>
                        Codigo de articulo
                        <input type="text" value="" name="codart"/>
                    </p>
                    <p>
                        Descripcion
                            <input type="text" value="" name="descripcion"/>
                    </p>
                    <p>
                        PVP
                            <input type="text" value="" name="pvp"/>
                    </p>
                    <p>
                        Existencia
                        <input type="text" value="" name="existencia"/>
                    </p>
                </td>
            </tr>
            <tr align="left" border=5>
                <td>
                    <input type="button" value="Buscar art." name="b2" onClick="Buscar"/>
                </td>
                <td>
                    <p>
                        Codigo de articulo
                        <input type="text" value="" name="codart"/>
                    </p>
                </td>
            </tr>
            <tr align="left" border=5>
                <td>
                    <input type="button" value="Vender art." name="b3" onclick="Vender"/>
                </td>
                <td>
                    <p>
                        Codigo de articulo
                        <input type="text" value="" name="codart"/>
                    </p>
                    <p>
                        Cantidad
                        <input type="text" value="" namne="cantidad"/>
                    </p>
                </td>
            </tr>
            <tr>
                <td align="center" colspan=2>
                    <input type="button" value="Ver estado de caja" name="b4" onclick="vercaja"/>
                </td>
            </tr>
        </table>
    </body>
</html>

Un saludo,

José Manuel
=========================
http://www.orbisapientia.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con javascript embebido

Publicado por Giuliano (13 intervenciones) el 12/10/2013 17:53:36
Ya lo hice, pero porque declaras la variable despues? Ademas se me tilda el navegador como en un bucle infinito, y la variable x es entero no string.

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con javascript embebido

Publicado por Jose Manuel (20 intervenciones) el 12/10/2013 18:06:56
Hola:

No entiendo lo de que declaro la variable después. Ambas están declaradas antes de donde se utilizan.

Si lo prefieres x=0, pero ya lo haces en el bucle. Lo de poner x="" fue más que nada por acabar rápido y hacer un "mal uso" del poco tipado que tiene JavaScript.

A mi me funciona perfectamente, no hay ningún bucle infinito.

En realidad, lo importante era cambiar los almacen[x,0] por almacen[x][0] y así todos. Ese cambio no tiene por qué crear un bucle infinito. En cualquier caso, si expones el código que te causa el bucle infinito podemos ver donde está el problema.

En cualquier caso, he entendido que ya solucionaste el problema. Bien hecho en cualquier caso.

Un saludo,

José Manuel
=========================
http://www.orbisapientia.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con javascript embebido

Publicado por Giuliano (13 intervenciones) el 12/10/2013 18:10:20
Pues a mi me muestra el ultimo elemento del array osea las tuercas,
y probando con:
1
2
3
4
5
6
7
8
9
10
11
12
function Stock(){
			var x;
 
			for (x=0;x<almacen.length;x++){
 
				var s="";
				s+="codigo" + almacen[x][0] + "Descripcion" + almacen[x][1] + "Precio" + almacen [x][2] +"Existencia" + almacen[x][3]+"\n";
			alert(s);
			}
 
 
		}
es decir la s dentro del for me muestra los dos solo que hace obviamente dos cartelitos.
No se como te anduvo porque ami me muetra el ultimo elemento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con javascript embebido

Publicado por Giuliano (13 intervenciones) el 12/10/2013 18:20:49
Ahora me funciona:
1
2
3
4
5
6
7
8
9
10
11
function Stock(){
			var x;
			var s="";
			var mostrar="";
			for (x=0;x<almacen.length;x++){
				s+="codigo" + almacen[x][0] + "Descripcion" + almacen[x][1] + "Precio" + almacen [x][2] +"Existencia" + almacen[x][3]+"\n";
				mostrar= mostrar + s;
				s="";
			}
			alert(mostrar);
		}

Pongo el primer elemento en s, en una variable mostrar concateno s, despues la borro y sigo recorriendo.
Luego alert mostrar y listo.
Gracias igual por ayudar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar