JavaScript - Capturar datos y almacenarlos en JSON

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Capturar datos y almacenarlos en JSON

Publicado por leonardo (9 intervenciones) el 24/08/2016 00:33:24
Buenas tardes amigos:

Estoy tratando de capturar datos a traves de inputs y almacenar estas capturas en un JSON para ello uso la función "registrar". Lo que no entiendo es por que no puedo hacer uso del JSON fuera d la función mencionada ya que la variable que uso para guardar el array del JSON es global y me arroja un valor de "undefined" y en ultimas lo que necesito es utilizar ese JSON para utilizarlo en otras partes del código. Adjunto lo que hice y me corrigen si es que tengo errores garrafales para hecermelo saber, Agradezco la ayuda:

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
<!DOCTYPE html>
 
<html>
<head>
	<title></title>
	<script>
		window.onload=function(){
 
			var estudiante=new Object();
			var arrayEstudiante;
			var arrayEstu;
			var codigoest;
			var nombreest;
			var notaest;
 
			document.getElementById("botonRegistrar").addEventListener("click",registrar);
 
			function registrar(){
				codigoest=document.getElementById("txtCod").value;
				nombreest=document.getElementById("txtNom").value;
				notaest=parseFloat(document.getElementById("txtNot").value);
				estudiante.codigo=codigoest;
				estudiante.nombre=nombreest;
				estudiante.notaest=notaest;
				arrayEstudiante=JSON.stringify(estudiante);
				//document.write(objEstudiante);			
 
			}
 
			document.write(arrayEstudiante);
 
		}
	</script>
</head>
<body>
 
	<h1>Registro Estudiante</h1>
 
	<label>Codigo</label><br>
	<input type="text" id="txtCod"><br>
	<label>Nombre</label><br>
	<input type="text" id="txtNom"><br>
	<label>Nota</label><br>
	<input type="text" id="txtNot"><br><br>
 
	<input type="button" id="botonRegistrar" value="Registrar Estudiante">
	<input type="button" id="botonPromedio" value="Mostrar promedio">
	<input type="button" id="botonNotaMayor" value="Mostrar Nota Mayor">
	<input type="button" id="botonNotaMenor" value="Mostrar Nota Menor">
 
 
 
</body>
</html>
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: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Capturar datos y almacenarlos en JSON

Publicado por xve (2100 intervenciones) el 24/08/2016 08:52:53
Hola leonardo, el código actual, te devuelve "indefinied" porque al iniciar no se accede a la función registrar hasta que se pulsa sobre el botonRegistrar...

si pones document.write(arrayEstudiante); dentro de la función registrar, te devolverá el JSON!!!
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
Val: 16
Ha aumentado su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Capturar datos y almacenarlos en JSON

Publicado por leonardo (9 intervenciones) el 24/08/2016 16:37:11
Gracias xve.. Tu respuesta la entiendo por eso deje en comentarios la linea del document.write dentro de la función registrar. Lo que quiero saber es como hago para que el JSON no se destruya al salir de la función por que me parece extraño que si lo estoy guardando en una variable global no se conserve y me arroje "undefined". Quiero utilizar el valor guardado del JSON atraves de la variable arrayEstudiante que es global por fuera de esa función. Sigo agradeciendo cualquier ayuda. 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
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Capturar datos y almacenarlos en JSON

Publicado por xve (2100 intervenciones) el 24/08/2016 17:34:25
Leonardo, cuando llamas a la función registrar() el programa no pasa por la linea 28... únicamente ejecuta la función y finaliza!!!

Prueba este código haber si así lo ves mas claro:
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
<!DOCTYPE html>
 
<html>
<head>
	<title></title>
	<script>
		window.onload=function(){
 
			var estudiante=new Object();
			var arrayEstudiante;
			var arrayEstu;
			var codigoest;
			var nombreest;
			var notaest;
 
			document.getElementById("botonRegistrar").addEventListener("click",registrar);
			document.getElementById("botonPromedio").addEventListener("click",promedio);
 
			function registrar(){
				codigoest=document.getElementById("txtCod").value;
				nombreest=document.getElementById("txtNom").value;
				notaest=parseFloat(document.getElementById("txtNot").value);
				estudiante.codigo=codigoest;
				estudiante.nombre=nombreest;
				estudiante.notaest=notaest;
				arrayEstudiante=JSON.stringify(estudiante);
			}
 
			function promedio() {
				document.getElementById("resultado").innerHTML=arrayEstudiante;
			}
 
		}
	</script>
</head>
<body>
 
	<h1>Registro Estudiante</h1>
 
	<label>Codigo</label><br>
	<input type="text" id="txtCod"><br>
	<label>Nombre</label><br>
	<input type="text" id="txtNom"><br>
	<label>Nota</label><br>
	<input type="text" id="txtNot"><br><br>
 
	<input type="button" id="botonRegistrar" value="Registrar Estudiante">
	<input type="button" id="botonPromedio" value="Mostrar promedio">
	<input type="button" id="botonNotaMayor" value="Mostrar Nota Mayor">
	<input type="button" id="botonNotaMenor" value="Mostrar Nota Menor">
 
	<div id="resultado"></div>
 
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Capturar datos y almacenarlos en JSON

Publicado por leonardo (9 intervenciones) el 24/08/2016 18:34:33
mmmm ya ví... Es decir, si esta guardando el JSON pero para poder acceder a este, tendría que construir la lógica necesaria en otra función para que cuando esta sea llamada se ejecute lo que hay dentro de esa otra función como por ejemplo el innerHTML que ilustraste o el document.write que nunca se ejecutó por no estar llamadose desde ningún lado. Estoy en lo correcto? 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
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Capturar datos y almacenarlos en JSON

Publicado por xve (2100 intervenciones) el 24/08/2016 22:45:52
exacto!!!

La variable tiene el valor, pero hay que ver la logica del mismo para mostrar su valor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 5 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Capturar datos y almacenarlos en JSON

Publicado por leonardo (9 intervenciones) el 24/08/2016 23:01:18
Huy viejo muchas gracias. Gracias por ilustrarme de no haber sido por esa otra función que construiste hubiera quedado loco. Muchísimas 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