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

Algo sencillo!

Estas en el tema de Algo sencillo! en el foro de Java en Foros del Web. Hola a todos, Ante mi desesperación, necesito vuestra ayuda! Tengo lo siguiente: Código: <td class="campo">Ciudad:</td> <td class="valor"> <% Municipios municipio = (Municipios)request.getAttribute("municipioPpal"); int idMunicipio = ...
  #1 (permalink)  
Antiguo 04/03/2010, 11:45
 
Fecha de Ingreso: septiembre-2008
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 15 años, 7 meses
Puntos: 0
Algo sencillo!

Hola a todos,

Ante mi desesperación, necesito vuestra ayuda!

Tengo lo siguiente:

Código:
		<td class="campo">Ciudad:</td>
		<td class="valor">
			<% Municipios municipio = (Municipios)request.getAttribute("municipioPpal"); 
			   int idMunicipio = municipio.getId();
			%>
			<html:select name="beneficiarioForm" styleClass="fieldm" property="idCiudad" onchange="mostrarBarrio(this, <%= idMunicipio %> )">
				<html:option value=""/>
			    <html:options collection="listadoMunicipios" property="id" labelProperty="nombre"/>
			</html:select>
		</td>
La función que llama de JS, es la siguiente:

Código:
<script language="JavaScript">
	function mostrarBarrio(seleccion, idPpal) {
		if((seleccion.options[seleccion.selectedIndex].value) == (idPpal)){
			document.getElementById('barrio').style.display='block';
			alert("2");
		}
		alert("3");
	}
	
</script>
De verdad que no entiendo qué es lo que está pasando... si por favor, alguien de ustedes es tan amable de guiarme...

Muchas gracias!!
  #2 (permalink)  
Antiguo 04/03/2010, 12:10
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Algo sencillo!

¿cual es el error?, ¿que no te sirve?, se más especifico
  #3 (permalink)  
Antiguo 04/03/2010, 12:18
 
Fecha de Ingreso: septiembre-2008
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Algo sencillo!

Hola maycolalvarez,
El problema que me sale es "Syntax error" al pasar el campo idMunicipio en la llamada al function.
Gracias!
  #4 (permalink)  
Antiguo 04/03/2010, 12:44
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Algo sencillo!

No muestras el HTML, que es con lo que Javascript interactúa
  #5 (permalink)  
Antiguo 10/03/2010, 07:26
 
Fecha de Ingreso: septiembre-2008
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Algo sencillo!

Perdonad el retraso, muchas gracias por el interés.

El HTML con que debería interaccionar es:

Código:
	<tr id="barrio" style="display:none">
		<td class="campo">Distrito:</td>
		<td class="valor">
			<html:select name="beneficiarioForm" styleClass="fieldm" property="idDistrito">
			    <html:options collection="listadoBarrios" property="id" labelProperty="nombre"/>
			</html:select>
		</td>
	</tr>
  #6 (permalink)  
Antiguo 10/03/2010, 08:54
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Algo sencillo!

Eso no es HTML, es algún lenguaje del lado del servidor, una búsqueda en Ask sugiere que se trata de Struts.
Tenés que mostrar el HTML que recibe el navegador, si eso es lo que recibe el problema es que falta el pre-procesamiento que transforma ese bloque en HTML válido.


Saludos.
  #7 (permalink)  
Antiguo 11/03/2010, 07:56
 
Fecha de Ingreso: septiembre-2008
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Algo sencillo!

Perdona AlvaroG, tienes razón. Aquí va el código HTML:

Código:
	<tr>
		<td class="campo">Ciudad:</td>
		<td class="valor">
			
			<select name="idCiudad" onchange="mostrarBarrio(this, <%= idMunicipio %> )" class="fieldm"><option value=""></option>
			    <option value="1">Barcelona</option>
<option value="2">L'Hospitalet</option></select>
		</td>
		<td class="campo">Cód. Postal:</td>
		<td><input type="text" name="codPostal" maxlength="5" size="5" value="" class="input-font">&nbsp;
		</td>
	</tr>
	<tr id="barrio" style="display:none">
		<td class="campo">Distrito:</td>
		<td class="valor">
			<select name="idDistrito" class="fieldm"></select>
		</td>
	</tr>
Código:
<script language="JavaScript">
	function mostrarBarrio(seleccion, idPpal) {
		if((seleccion.options[seleccion.selectedIndex].value) == (idPpal)){
			document.getElementById('barrio').style.display='block';
			alert("2");
		}
		alert("3");
	}
	
</script>
Gracias!!
  #8 (permalink)  
Antiguo 11/03/2010, 13:37
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Algo sencillo!

Código:
mostrarBarrio(this, <%= idMunicipio %> )
Creo que ese es el problema... el HTML contiene eso en vez de un valor válido.

Hice pruebas sustituyendo "<%= idMunicipio %>" por "2", y creando un documento HTML válido para la prueba (básicamente, envolví tu códico en <table>, <body>, <html>) y el código funcionó bien.


Saludos.
  #9 (permalink)  
Antiguo 12/03/2010, 01:45
 
Fecha de Ingreso: septiembre-2008
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Algo sencillo!

Hola,

En teoría se debería sustituir <%= idMunicipio %> por el valor que tiene idMunicipio, que es un int, pero no sé por qué motivo no lo sustituye...

Saludos
  #10 (permalink)  
Antiguo 12/03/2010, 10:46
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Algo sencillo!

Si, lo entiendo, y entonces el problema está en esa sustitución. ¿Qué lenguaje es? quizás tengas mejor suerte si se mueve el tema al foro de ese lenguaje :)


Saludos.
  #11 (permalink)  
Antiguo 15/03/2010, 06:02
 
Fecha de Ingreso: septiembre-2008
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Algo sencillo!

Gracias AlvaroG por todas tus respuestas.

Quizá se debería mover a Struts pero no sé cómo hacerlo... si algún admin lo lee y puede moverlo... se lo agradezco.

Saludos!
  #12 (permalink)  
Antiguo 15/03/2010, 14:53
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola keshone

Muevo tu tema al foro de Java desde Javascript.

Saludos,
  #13 (permalink)  
Antiguo 16/03/2010, 05:12
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Algo sencillo!

Wenas

En tu jsp.

Código:
<script>
mostrarBarrio(this, <%= idMunicipio %> );
</script>
Saludos.
__________________
--
NO. Tu problema no es urgente.

CCFVLS
  #14 (permalink)  
Antiguo 16/03/2010, 08:09
 
Fecha de Ingreso: septiembre-2008
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Algo sencillo!

Gracias por contestar elAntonie,

No acabo de entender, dices de escribir todo eso dentro de "onchange"?

Saludos
  #15 (permalink)  
Antiguo 16/03/2010, 10:20
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Algo sencillo!

Buff perdon. Create una variable javascript con el valor del idMunicipio y pasaselo al onchange.

Código:
<script>
var idMunicipio = <%=idMunicipio%>
</script>
<html:select name="beneficiarioForm" styleClass="fieldm" property="idCiudad" onchange="mostrarBarrio(this, idMunicipio )">

Tambien puedes almacenar el idMuncipio en un hidden
Código:
			<% Municipios municipio = (Municipios)request.getAttribute("municipioPpal"); 
			%>
<input type="hidden" name="idmunicipio" value="<%=municipio.getId()%>">
<html:select name="beneficiarioForm" styleClass="fieldm" property="idCiudad" onchange="mostrarBarrio(this)">
y en el javascript
Código:
function mostrarBarrio(laselect)
{
     var idMunicipio = laselect.form.idmunicipio.value;
bla,blabla;
}
Repito mis disculpas, se me ha ido la pinza.

Saludos.
__________________
--
NO. Tu problema no es urgente.

CCFVLS

Última edición por elAntonie; 16/03/2010 a las 10:26
  #16 (permalink)  
Antiguo 16/03/2010, 10:38
 
Fecha de Ingreso: septiembre-2008
Ubicación: Barcelona
Mensajes: 33
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Algo sencillo!

Ahora sí entiendo! Jaja

Muchísimas gracias elAntonie!

Un saludo!

Etiquetas: sencillo
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 22:53.