Foros del Web » Programando para Internet » Javascript »

pasar variables con espacios

Estas en el tema de pasar variables con espacios en el foro de Javascript en Foros del Web. hola, tengo una ventana primaria o principal que al pinchar salta otra ventana con unas opciones. cuando en la ventana 2ª pincho la opción elegida, ...
  #1 (permalink)  
Antiguo 08/11/2006, 12:32
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
pasar variables con espacios

hola, tengo una ventana primaria o principal que al pinchar salta otra ventana con unas opciones.
cuando en la ventana 2ª pincho la opción elegida, me coge unos parámetros y me los coloca en la ventana primaria. bueno, quizás esto no es relevante, pero ayuda a entender el código que os pego.

mi problema es que, en la ventana secundaria, al pinchar, paso unos parámetros a una función de javascript (q está embebida en esa ventana 2ª y q os pego a continuación). uno de estos parámetros es nombre completo (con apellidos), es decir un campo que va a contener ESPACIOS.

he ahí mi problema, si a la función de javascript le paso un nombre sin espacios todo va bien, pero si es un nombre completo con espacios (pedro ortiz, por ej.) no me paso este nombre a la función javascript, me sale el error:

"Constante de cadena sin terminar"

a continuación os pego lo esencial del código, la función en js y el link donde coloco el nombre que se ha de pasar a la función en js:


<script LANGUAGE="JavaScript">
function ponfotonombre(idusuario,fotonombre,quien)
{
opener.document.vermodificar.idusuario.value = idusuario
opener.document.foto.picture.src = '../../fotos/'+fotonombre
opener.document.foto.quien.value = quien
window.close()
}
</script>


echo "<a href=javascript:ponfotonombre($id,'$carpetafoto/$nombrefoto','$quien'</a>";
  #2 (permalink)  
Antiguo 08/11/2006, 13:45
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 17 años, 7 meses
Puntos: 6
Puede intentar poniendo en esta linea

Código HTML:
<script >
...
opener.document.foto.picture.src = '../../fotos/'+escape(fotonombre);
...
</script> 
Lo anterior pasa porque conviertes la cadena en un URL y dentr de una de estas no son validos los espacios

Con la funcion escape() te convertira los espacios en %20 y con eso lo interpretará apropiadamente el navegador.

Este es un problema de Javascrip no de PHP
  #3 (permalink)  
Antiguo 08/11/2006, 13:47
Avatar de emilio21  
Fecha de Ingreso: enero-2005
Ubicación: Venezuela
Mensajes: 320
Antigüedad: 19 años, 3 meses
Puntos: 1
Re

tema de javascript no php
__________________
¡Estamos para Enseñar y Aprender!
  #4 (permalink)  
Antiguo 09/11/2006, 13:58
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
concreción

ya, pero el tema es en la variable $quien:

echo "<a href=javascript:ponfotonombre($id,'$carpetafoto/$nombrefoto','$quien'</a>";

en $quien es donde, si paso el puntero sin pinchar, por ej. si se llama Pedro Ruiz, me sale:

ponfotonombre (.......,'Pedro

algo así, o sea q no coge el espacio y lo q hay detrás, pero pasa en ese link, es donde me da el fallo

si manualmente pongo:

opener.document.foto.quien.value = 'Pedro Ruiz', me va perfectamente, es decir q no llega el nombre $quien a la función ponfotonombre (javascript) q hace q pase la variable a la ventana pral. opener.
  #5 (permalink)  
Antiguo 12/11/2006, 08:06
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
alguien me puede ayudar?

  #6 (permalink)  
Antiguo 12/11/2006, 08:16
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Qué tal,

eso te pasa porque no usas comillas en el atributo href del link. Ponle las comillas y te tomará también los espacios y lo que venga detrás.

Un saludo
  #7 (permalink)  
Antiguo 12/11/2006, 09:59
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
casi... joer... si hago lo q me dices, antes de pinchar paso el ratón sobre el link y SÍ q me coge el campo con los espacios y todo...

el problema es q cuando pincho en el link me da un error:

se esperaba ')'

el típico error de js

el tema es q para poner lo q me indicas tengo q quitar las comillas simples de los campos q van en el link, es decir y tengo q hacer:

echo "<a href='javascript:ponfotonombre($id,$carpetafoto/$nombrefoto,$quien)'</a>";

es q si no quito las comillas no me coge el contenido de la variable

y ya te digo, parece q va bien, pq al pasar el ratón me pone el nombre y apellidos con espacios y al pinchar me sale el error mencionado

..........
  #8 (permalink)  
Antiguo 12/11/2006, 10:10
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Debes usar comillas dobles en el href y simples para los valores javascript. Además te falta el texto del enlace

Código:
echo "<a href=\"javascript:ponfotonombre($id,'$carpetafoto/$nombrefoto','$quien')\">texto del link</a>";
  #9 (permalink)  
Antiguo 12/11/2006, 10:26
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
gracias!!!!!!!!!!!, me has hecho un gran favor tunait, funciona perfectamente!
  #10 (permalink)  
Antiguo 12/11/2006, 12:20
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Qué bien, me alegra que lo solucionaras

Un saludo
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 18:18.