Foros del Web » Programación para mayores de 30 ;) » Java »

Acceder a un elemento del listado creado dinamicamente con Javascript, Json y Jsp

Estas en el tema de Acceder a un elemento del listado creado dinamicamente con Javascript, Json y Jsp en el foro de Java en Foros del Web. Hola, Buenas soy nueva en este foro y de por si en el mundo de la programación y me a surgido un inconveniente, me gustaría ...
  #1 (permalink)  
Antiguo 01/09/2015, 22:45
 
Fecha de Ingreso: septiembre-2015
Mensajes: 6
Antigüedad: 8 años, 8 meses
Puntos: 0
Pregunta Acceder a un elemento del listado creado dinamicamente con Javascript, Json y Jsp

Hola, Buenas soy nueva en este foro y de por si en el mundo de la programación y me a surgido un inconveniente, me gustaría que si alguien me puede colaborar se lo agradecería infinitamente.

Resulta que recorro los datos de un archivo de texto de json y necesito pasar los datos de esta tabla dinámica a otro jsp, pero al no haber un id o algo solo me trae la primera iteración.

Tengo este Jsp que consume un json de un archivo local:
-----
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">

<script type="application/javascript">
function loadJSON(){
var xmlhttp = new XMLHttpRequest();
var url = "ArchivoDePrueba.txt";
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var myArr = JSON.parse(xmlhttp.responseText);
myFunction(myArr);
var datos = '00AJ081';
alert (consulta( datos));
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
function myFunction(arr) {
var out = "";
var i;
var contador = 0;
for(i = 0; i < arr.length; i++) {
out += '<tr><td><input type="text" name="categoria" value="' + arr[i].Categoria + '"/></td>'
+ '<td> <input type="text" name="currencyDef" value="' + arr[i].CurrencyDef + '"/></td>'
+ '<td> <input type="text" name="description" value="' + arr[i].Description + '"/></td>'
+ '<td> <input type="text" name="familia" value="' + arr[i].Familia + '"></td>'
+ '<td> <input type="text" name="marks" value="' + arr[i].Marks + '"/></td>'
+ '<td> <input type="text" name="name" value="' + arr[i].Name + '"/></td>'
+ '<td> <input type="text" name="partNum" value="' + arr[i].PartNum + '"/><td>'
+ '<td> <input type="text" name="quantity" value="' + arr[i].Quantity + '"/></td>'
+ '<td> <input type="text" name="salesminprice" value="' + arr[i].Salesminprice + '"/></td>'
+ '<td> <input type="submit" name="publicar" value="Publicar" onclick="consulta("'+arr[i].PartNum +'")/> </td>' +'</tr>';
}
document.getElementById("id01").innerHTML = out;
}

// Trate de hacer esta consulta para hallar el id que sería PartNum pero no supe llamarla en la función de arriba :c

function consulta(valor) {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var myArr = JSON.parse(xmlhttp.responseText);
for(var i = 0; i < myArr.length; i++){
if(myArr[i].PartNum == valor){
return myArr[i].Categoria + myArr[i].CurrencyDef + myArr[i].Description +
myArr[i].Familia + myArr[i].Marks + myArr[i].Name + myArr[i].PartNum
+ myArr[i].Quantity + myArr[i].Salesminprice;
}
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}



}
</script>

<script language="javascript">
function defineOpcion(opcion) {
document.forms[0].opcion.value = opcion;

}
</script>

<title>JSON and AJAX</title>
</head>
<body>
<form name="listaProductos" action="productoLinioProveedor.jsp" method="post">
<div>
<table id="id01" cellpadding="0" cellspacing="0" name="productos">
</table>
</div>
<button type="button" onclick="loadJSON()">Update Name</button>
<h2>Click this button to update the page</h2>
</form>
</body>
</html>
---
Este es el Json
---

[{"Categoria":"Storage","CurrencyDef":"COP","Descri ption":"n2225 sas/sata hba for ibm system x","Familia":"ALMACENAMIENTO","Marks":"LENOVO SERVIDORES","Name":"N2225 SAS/SATA HBA for IBM System x","PartNum":"00AE912","Quantity":2,"Salesminprice ":706006.97},{"Categoria":"Accesorios Servidores","CurrencyDef":"USD","Description":"hdd 300gb 15k 6gbps sas 2.5in g3hs hdd","Familia":"SERVIDORES","Marks":"LENOVO SERVIDORES","Name":"HDD 300GB 15K 6Gbps SAS 2.5in G3HS HDD","PartNum":"00AJ081","Quantity":6,"Salesminpri ce":328.45}]

--
JSP a pasar los datos
---
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">

<!--Se importan los estilos -->
<script type="text/javascript" src="js/livevalidation.js"></script>
<link rel="stylesheet" href="css/live_validation.css"/>

<script language="javascript">

function defineOpcion(opcion) {
document.forms[0].opcion.value = opcion;
document.forms[0].submit();
}
</script>
<script language="javascript" type="text/javascript" src="tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode: "textareas",
theme: "advanced"
});
</script>

</head>
<body>

<div class="contenido" >
<h2 style="text-align: center;">INSERTAR PRODUCTO</h2>
<form action="cargaControl" method="POST"" >
<input id="slcVendedor" type="hidden" name="id_vendedor"/>
</form>
<%

String categoria = request.getParameter("categoria");
String currencyDef = request.getParameter("currencyDef");
String description = request.getParameter("description");
String familia = request.getParameter("familia");
String marks = request.getParameter("marks");
String name = request.getParameter("name");
String partNum = request.getParameter("partNum");
String quantity = request.getParameter("quantity");
String salesminprice = request.getParameter("salesminprice");

out.println("Categoría: " + categoria + "<br />");
out.println("CurrencyDef: " + currencyDef + "<br />");
out.println("Description: " + description + "<br />");

out.println("Familia: " + familia + "<br />");
out.println("Marks: " + marks + "<br />");
out.println("Name: " + name + "<br />");
out.println("PartNum: " + partNum + "<br />");
out.println("Quantity " + quantity + "<br />");
out.println("Salesminprice: " + salesminprice + "<br />");


%>
Categoría:
<input type="text" value="<% out.println(request.getParameter("categoria"));%>"/>

</div>
</body>
</html>

Si alguien sabe que debo hacer por fa me lo hacen saber muchas gracias de antemano, un saludo
  #2 (permalink)  
Antiguo 03/09/2015, 12:26
Avatar de luisdavid1993  
Fecha de Ingreso: julio-2015
Ubicación: Anaco Venezuela
Mensajes: 78
Antigüedad: 8 años, 9 meses
Puntos: 2
Respuesta: Acceder a un elemento del listado creado dinamicamente con Javascript, Jso

usa el Highlight para poder comprender el codigo
__________________
"Lucha por tus sueños o alguien te contratara para que cumplas los de el"
  #3 (permalink)  
Antiguo 04/09/2015, 10:04
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Acceder a un elemento del listado creado dinamicamente con Javascript, Jso

Hola,
ese json es una lista. Lo que puedes hacer es con la librería "Jackson" pasar la cadena JSON a una lista de objetos tipo List<Producto>.

Saludos
  #4 (permalink)  
Antiguo 04/09/2015, 14:54
 
Fecha de Ingreso: septiembre-2015
Mensajes: 6
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Acceder a un elemento del listado creado dinamicamente con Javascript, Jso

Hola!
Oh ya veo, pero al realizar eso no necesitaría asignarle un id o algo?
Gracias.
  #5 (permalink)  
Antiguo 04/09/2015, 15:02
 
Fecha de Ingreso: septiembre-2015
Mensajes: 6
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Acceder a un elemento del listado creado dinamicamente con Javascript, Jso

Cita:
Iniciado por luisdavid1993 Ver Mensaje
usa el Highlight para poder comprender el codigo

Código PHP:
<html>
<
head>
<
meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">

<
script type="application/javascript">
function 
loadJSON(){
var 
xmlhttp = new XMLHttpRequest();
var 
url "ArchivoDePrueba.txt";
xmlhttp.onreadystatechange = function() {
if (
xmlhttp.readyState == && xmlhttp.status == 200) {
var 
myArr JSON.parse(xmlhttp.responseText);
myFunction(myArr);
var 
datos '00AJ081';
alert (consultadatos)); 
}
}
xmlhttp.open("GET"urltrue);
xmlhttp.send();
function 
myFunction(arr) {
var 
out "";
var 
i;
var 
contador 0;
for(
0arr.lengthi++) {
out += '<tr><td><input type="text" name="categoria" value="' arr[i].Categoria '"/></td>' 
'<td> <input type="text" name="currencyDef" value="' arr[i].CurrencyDef '"/></td>' 
'<td> <input type="text" name="description" value="' arr[i].Description '"/></td>' 
'<td> <input type="text" name="familia" value="' arr[i].Familia '"></td>' 
'<td> <input type="text" name="marks" value="' arr[i].Marks '"/></td>' 
'<td> <input type="text" name="name" value="' arr[i].Name '"/></td>' 
'<td> <input type="text" name="partNum" value="' arr[i].PartNum '"/><td>' 
'<td> <input type="text" name="quantity" value="' arr[i].Quantity '"/></td>' 
'<td> <input type="text" name="salesminprice" value="' arr[i].Salesminprice '"/></td>' 
'<td> <input type="submit" name="publicar" value="Publicar" onclick="consulta("'+arr[i].PartNum +'")/> </td>' +'</tr>';
}
document.getElementById("id01").innerHTML out;
}

// Trate de hacer esta consulta para hallar el id que sería PartNum pero no supe llamarla en la función de arriba :c

function consulta(valor) { 
if (
xmlhttp.readyState == && xmlhttp.status == 200) {
var 
myArr JSON.parse(xmlhttp.responseText);
for(var 
0myArr.lengthi++){
if(
myArr[i].PartNum == valor){
return 
myArr[i].Categoria myArr[i].CurrencyDef myArr[i].Description +
myArr[i].Familia myArr[i].Marks myArr[i].Name myArr[i].PartNum 
myArr[i].Quantity myArr[i].Salesminprice;
}
}
}
xmlhttp.open("GET"urltrue);
xmlhttp.send();
}




</script>

<script language="javascript">
function defineOpcion(opcion) {
document.forms[0].opcion.value = opcion;

}
</script>

<title>JSON and AJAX</title>
</head>
<body>
<form name="listaProductos" action="productoLinioProveedor.jsp" method="post">
<div>
<table id="id01" cellpadding="0" cellspacing="0" name="productos">
</table>
</div>
<button type="button" onclick="loadJSON()">Update Name</button>
<h2>Click this button to update the page</h2>
</form>
</body>
</html> 
JSON:

[{"Categoria":"Storage","CurrencyDef":"COP","Des cri ption":"n2225 sas/sata hba for ibm system x","Familia":"ALMACENAMIENTO","Marks":"LENOVO SERVIDORES","Name":"N2225 SAS/SATA HBA for IBM System x","PartNum":"00AE912","Quantity":2,"Salesminpr ice ":706006.97},{"Categoria":"Accesorios Servidores","CurrencyDef":"USD","Description":"hdd 300gb 15k 6gbps sas 2.5in g3hs hdd","Familia":"SERVIDORES","Marks":"LENOVO SERVIDORES","Name":"HDD 300GB 15K 6Gbps SAS 2.5in G3HS HDD","PartNum":"00AJ081","Quantity":6,"Salesminpr i ce":328.45}]

JSP a pasar los datos
---
Código PHP:
<html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">

<!--
Se importan los estilos -->
<
script type="text/javascript" src="js/livevalidation.js"></script>
<link rel="stylesheet" href="css/live_validation.css"/>

<script language="javascript">

function defineOpcion(opcion) {
document.forms[0].opcion.value = opcion;
document.forms[0].submit();
}
</script>
<script language="javascript" type="text/javascript" src="tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode: "textareas",
theme: "advanced"
});
</script>

</head>
<body>

<div class="contenido" >
<h2 style="text-align: center;">INSERTAR PRODUCTO</h2>
<form action="cargaControl" method="POST"" >
<input id="slcVendedor" type="hidden" name="id_vendedor"/>
</form>
<%

String categoria = request.getParameter("categoria");
String currencyDef = request.getParameter("currencyDef");
String description = request.getParameter("description");
String familia = request.getParameter("familia");
String marks = request.getParameter("marks");
String name = request.getParameter("name");
String partNum = request.getParameter("partNum");
String quantity = request.getParameter("quantity");
String salesminprice = request.getParameter("salesminprice");

out.println("Categoría: " + categoria + "<br />");
out.println("CurrencyDef: " + currencyDef + "<br />");
out.println("Description: " + description + "<br />");

out.println("Familia: " + familia + "<br />");
out.println("Marks: " + marks + "<br />");
out.println("Name: " + name + "<br />");
out.println("PartNum: " + partNum + "<br />");
out.println("Quantity " + quantity + "<br />");
out.println("Salesminprice: " + salesminprice + "<br />");


%>
Categoría:
<input type="text" value="<% out.println(request.getParameter("categoria"));%>"/>

</div>
</body>
</html> 
Muchas Gracias..
  #6 (permalink)  
Antiguo 05/09/2015, 02:17
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 2 meses
Puntos: 78
Respuesta: Acceder a un elemento del listado creado dinamicamente con Javascript, Jso

Cita:
Iniciado por ElizaD Ver Mensaje
Hola!
Oh ya veo, pero al realizar eso no necesitaría asignarle un id o algo?
Gracias.
Hola,
No, no hace falta que tengas id.

Saludos
  #7 (permalink)  
Antiguo 05/09/2015, 08:31
 
Fecha de Ingreso: septiembre-2015
Mensajes: 6
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Acceder a un elemento del listado creado dinamicamente con Javascript, Jso

Cita:
Iniciado por ElAthlit Ver Mensaje
Hola,
No, no hace falta que tengas id.

Saludos
Que pena, me podrías dar un ejemplo de como hacerlo estuve investigando pero me genera errores

Gracias

Lo que tengo es algo así:

Código PHP:
ObjectMapper JSON_MAPPER = new ObjectMapper();
                 
ArrayList<ProductoVOproductos JSON_MAPPER.readValue(new File("ArchivoDePrueba.json"),
                    
JSON_MAPPER.getTypeFactory().constructCollectionType(ArrayList.class, ProductoVO.class)); 
  #8 (permalink)  
Antiguo 05/09/2015, 09:40
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Acceder a un elemento del listado creado dinamicamente con Javascript, Jso

Buenas,

En principio parece correcta tu forma de deserializar. Deberia funcionar.

Sin embargo, el hecho de que digas que "genera errores" y que no indiques que errores son esos no te ayuda nada, la verdad.


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #9 (permalink)  
Antiguo 05/09/2015, 10:36
 
Fecha de Ingreso: septiembre-2015
Mensajes: 6
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Acceder a un elemento del listado creado dinamicamente con Javascript, Jso

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

En principio parece correcta tu forma de deserializar. Deberia funcionar.

Sin embargo, el hecho de que digas que "genera errores" y que no indiques que errores son esos no te ayuda nada, la verdad.


Un saludo
Jeje no que pena era un error de librerías

Luego de deserializar que debo hacer? recorrerlo como estaba haciendo?, que pena la preguntadera pero esto del Json no se me da bien D:

De verdad muchas gracias

Etiquetas: jsp
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 04:53.