Foros del Web » Programando para Internet » Javascript »

Paso de parametros a Javascript

Estas en el tema de Paso de parametros a Javascript en el foro de Javascript en Foros del Web. Buenas tardes!!! Estoy teniendo problemas al intentar pasarle como parametro a una función de Javascript una cadena con formato json atraves de el evento onclick, ...
  #1 (permalink)  
Antiguo 10/12/2010, 16:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
Paso de parametros a Javascript

Buenas tardes!!!

Estoy teniendo problemas al intentar pasarle como parametro a una función de Javascript una cadena con formato json atraves de el evento onclick, ya que mi parametro contiene comillas dobles y espacios en blanco lo que entra en conflicto con las comillas de el evento onclick.

Aqui pongo la parte del código que me esta ocasionando problemas.

Estoy utilizando aspx del lado del servidor

v=[{"n":"nombre primero","x":"0","y":"2"},{"n":"nombre segundo","x":"1","y":"0"},{"n":"nombre tercero","x":"2","y":"0"},{"n":"Nombre cuato","x":"3","y":"2"},{"n":"nombre quinto","x":"4","y":"0"},{"n":"Nombre sexto","x":"5","y":"2"}]

<a href="#" onClick=&quot;Funcionjs('par=<%= v %>') &quot; > Graficar </a>
<a href="#" onClick="Funcionjs('par=<%= v %>') " > Graficar </a>
<a href="#" onClick=Funcionjs('par=<%= v %>') > Graficar </a>


He intentado de estas tres maneras pero no consigo que los parametros sean enviados.

En la primera opción obtengo error en el primer espacio en blanco
En la segunda opción las primeras comillas de mi variable cierran las comillas de el evento onclick
En la tercera opción obtengo error en el primer espacio en blanco.

Espero me puedan orientar en como puedo hacerlo de la manera correcta de antemano muchas gracias
  #2 (permalink)  
Antiguo 10/12/2010, 21:54
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Paso de parametros a Javascript

presta atención a la sintaxis y el código generado por aspx. en el primer intento no te falla por el espacio, sino por error de sintaxis. por norma, el valor de un atributo debe estar envuelto en comillas literales. de ahi que el primero intento no te funciona. el segundo es el mas apropiado, sucede que el valor del atributo no puede confligir con la comilla utilizada para declarar el atributo. de modo que tienes que escapar cualquier cualquier caracter conflictivo al imprimir el contenido desde aspx.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 11/12/2010, 06:19
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Paso de parametros a Javascript

Cita:
Iniciado por Teresil Ver Mensaje
Buenas tardes!!!

Estoy teniendo problemas al intentar pasarle como parametro a una función de Javascript una cadena con formato json atraves de el evento onclick, ya que mi parametro contiene comillas dobles y espacios en blanco lo que entra en conflicto con las comillas de el evento onclick.

Aqui pongo la parte del código que me esta ocasionando problemas.

Estoy utilizando aspx del lado del servidor

v=[{"n":"nombre primero","x":"0","y":"2"},{"n":"nombre segundo","x":"1","y":"0"},{"n":"nombre tercero","x":"2","y":"0"},{"n":"Nombre cuato","x":"3","y":"2"},{"n":"nombre quinto","x":"4","y":"0"},{"n":"Nombre sexto","x":"5","y":"2"}]

<a href="#" onClick=&quot;Funcionjs('par=<%= v %>') &quot; > Graficar </a>
<a href="#" onClick="Funcionjs('par=<%= v %>') " > Graficar </a>
<a href="#" onClick=Funcionjs('par=<%= v %>') > Graficar </a>


He intentado de estas tres maneras pero no consigo que los parametros sean enviados.

En la primera opción obtengo error en el primer espacio en blanco
En la segunda opción las primeras comillas de mi variable cierran las comillas de el evento onclick
En la tercera opción obtengo error en el primer espacio en blanco.

Espero me puedan orientar en como puedo hacerlo de la manera correcta de antemano muchas gracias
Pocas veces me he aventurado a hacer algo así. En todo caso cuando lo hago codifico la cadena que contiene el literal JSON. Puedes hacerlo usando base64 o URLEncoder. Estoy seguro que en .NET hay una clase que haga eso, es más, debe llamarse así: URLEncoder. Bien, lo codificas así y luego en JavaScript lo decodificas y le aplicas un eval:

Código:
function funcion(json) {
   var objeto = eval('(' + unescape(json) + ')');

}
No te empeñes en hacerlo sin usar este truco (u otro truco) porque el problemas de las comillas es muy difícil de resolver para todos los casos. Espero que te sirva.
  #4 (permalink)  
Antiguo 11/12/2010, 10:38
 
Fecha de Ingreso: septiembre-2010
Mensajes: 6
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Paso de parametros a Javascript

Buenos dias !!!

Muchas gracias por sus respuestas fueron de mucha ayuda!!

Ya habia intentado escapar los caracteres con algunas opciones que encontre en internet como el poner /, // y otras que no recuerdo bien, pero entonces obtenia error del lado del servidor ya que me marcaba error de sintaxis con esos caracteres.

Lo que hice fue sustituir los espacios en blanco por "_" y ya en javascript sustituirlos por espacios en blanco, no se si fue la mejor opción pero como dice ElJavista tuve q usar un truco.

v=[{"n":"nombre_primero","x":"0","y":"2"},{"n":"nombr e_segundo","x":"1","y":"0"},{"n":"nombre_tercero", "x":"2","y":"0"},{"n":"Nombre_cuato","x":"3","y":" 2"},{"n":"nombre_quinto","x":"4","y":"0"},{"n":"No mbre_sexto","x":"5","y":"2"}]


<a href="#" onClick="Funcionjs('par=<%= v %>') " > Graficar </a>

y utilice la segunda opción para mandar mi cadena ya q como mencionan es la mas adecuada

La función eval si la estaba utilizando en javascript ya q necesito accesar a cada uno de los elemntos de mi cadena json.

Muchas gracias

Etiquetas: parametros
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 07:08.