Que tal, me encuentro con un problemilla, necesito que en un iframe me cargue una imagen de una base de datos ( uso iFrame por que el resto de mi formulario, todo lo trabajo con Ajax de Jquery y no quiero que mi página principal haga submit). El caso es que cuando le indico que haga submit el formulario del iFrame, no me cacha un parametro y no me puede cargar la imagen, lo que hago es esto:
En la página principal...
Cuando ya cargo toda la info del usuario, mando a llamar esta función:
Código PHP:
function cargarCroquis(idElemento){
parent.frames['localscene'].document.forms['formCroquis'].idElemento.value = idElemento;
parent.frames['localscene'].cargaCroquis(idElemento); /* CROQUIS */
}
En la que al iFrame le asigno un ID a un campo de hidden y despues ejecuto una función que esta en el formulario del frame:
Código PHP:
function cargaCroquis(idElemento){
document.getElementById('idElemento').value = idElemento;
alert('El id para cargar : ' + idElemento);
document.forms['formCroquis'].submit();
}
Cuando se ejecuta esa función, el alert si me muestra el ID que mandé, despues hace el submit pero ya no me atrapa el valor del ID..
Este es el form de mi iFrame:
Código PHP:
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" session="true"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%
String context = request.getContextPath();
int idElemento = (request.getParameter("idElemento") == null || request.getParameter("idElemento").equals("null") || request.getParameter("idElemento").equals(""))?0:Integer.parseInt(request.getParameter("idElemento"));
String mensaje = (request.getParameter("mensaje") == null)?"":request.getParameter("mensaje");
System.out.println("_________ " + idElemento);
//System.out.println("Request : " + request);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" language="JavaScript">
var auxContext2 = '<%=context%>';
function validaCampos(idElemento){
//alert('Ide para guardar : ' + idElemento);
document.getElementById('idElemento').value = idElemento;
document.forms['formCroquis'].action = "<%=context%>/ServletGuardaCroquis";
document.forms['formCroquis'].submit();
}
function validacion(path){
window.parent.document.getElementById("auxCroquis").value = path;
//alert(window.parent.document.getElementById("auxCroquis").value);
}
function cargaCroquis(idElemento){
document.getElementById('idElemento').value = idElemento;
alert('El id para cargar : ' + idElemento);
document.forms['formCroquis'].submit();
}
</script>
<title>JSP Page</title>
</head>
<body>
<form name="formCroquis" method="post" action="" enctype="multipart/form-data">
<input type="text" id="idElemento" name="idElemento" value="<%=idElemento%>"/>
<table width="898" border="0">
<tr>
<td colspan="3" width="106" class="">
<input onchange="validacion(this.value);" value="" class="" type=file size=60 name="croquis" id="croquis" accept="image/gif, image/jpeg, image/jpg, image/png"></td>
</tr>
<tr>
<td colspan="5" width="106">
<%if(idElemento!=0){%>
<img src="<%=context%>/ServletConsultaCroquis?idElemento=<%=idElemento%>" alt=""
width="224" height="312" name="Imagen" style="position:inherit; width: 550px; top: 125px; height: 400px;">
<%}else{%>
<img src="<%=context%>/images/sinCroquis.jpg" alt=""
width="224" height="312" name="Imagen" style="position:inherit; width: 150px; top: 125px; height: 100px;">
<%}%>
</td>
</tr>
</table>
</form>
</body>
</html>
Como ven, uso el getParameter para obtener el valor del campo idElemento del formulario del iframe, pero no lo hace, alguien tiene alguna sugerencia? El servlet que necesito se ejecute es el que esta en el src de la imagen, espero puedan darme una luz, gracias de ante mano!!