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