Foros del Web » Programando para Internet » Javascript »

Paso de variables [Resuelto]

Estas en el tema de Paso de variables [Resuelto] en el foro de Javascript en Foros del Web. Hola intento pasar una variable obtenida mediante php por una funcion javascript, pero me da el siguiente error "unterminated string literal". El codigo que tengo ...
  #1 (permalink)  
Antiguo 18/12/2008, 09:33
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Paso de variables [Resuelto]

Hola intento pasar una variable obtenida mediante php por una funcion javascript, pero me da el siguiente error "unterminated string literal". El codigo que tengo para obtener la variable es el siguiente:

Código PHP:
$intro "\n";
$OpenFile fopen ("data1.dat","r");
$CFile fread($OpenFile3000000);
fclose($OpenFile);
$boton explode($intro$CFile); 
El archivo data1.dat contiene estas lineas:

Código PHP:
texto1
texto2 con espacios
texto3
texto4 tambien con espacios
texto5 
De forma que me obtiene correctamente todas las variables, pero al pasar la variable a la funcion javascript de esta forma:

Código PHP:
onclick="Bttclick('seccion','left','<?php echo $boton[$n]; ?>');">
Me da el error que he comentado. A que se puede deber? ya que me da error con todos los clicks que hago, a excepcion de cuando la variable vale texto5.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Última edición por mdk; 18/12/2008 a las 12:35
  #2 (permalink)  
Antiguo 18/12/2008, 09:41
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Paso de variables

Probá así:
Código PHP:
<?php
function js_encode($s){
    
$texto='';
    
$lon=strlen($s);
    for(
$i=0;$i<$lon;++$i){
        
$num=ord($s[$i]);
        if(
$num<16$texto.='\x0'.dechex($num);
        else 
$texto.='\x'.dechex($num);
    }
    return 
$texto;

$intro "\n";
$OpenFile fopen ("data1.dat","r");
$CFile fread($OpenFile3000000);
fclose($OpenFile);
$boton explode($intro$CFile);  
?>
<loquesea onclick="Bttclick('seccion','left','<?php echo js_encode($boton[$n]); ?>');">
  #3 (permalink)  
Antiguo 18/12/2008, 10:27
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Respuesta: Paso de variables

Ahora no me muestra el error, pero tampoco me muestra nada, jajaja :P
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #4 (permalink)  
Antiguo 18/12/2008, 10:30
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Respuesta: Paso de variables

No, mentira, ahora solo me muestra la segunda posicion de la tabla en el primer click cuando deberia de mostrarme la primera posicion. En el resto no muestra nada..
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #5 (permalink)  
Antiguo 18/12/2008, 10:32
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Paso de variables

Si no te muestra nada es porque o bien no hay nada o tenés un error en otra parte (estás seguro de haberle puesto el índice a tu vector PHP?). La función que te pasé lo que hace es escapar correctamente strings que luego deban manejarse con javascript, para evitar caracteres que afectan la ejecución. Lo que tendrías que hacer es colocar alerts para ver la salida de tu código php luego de aplicar la función de escape.
  #6 (permalink)  
Antiguo 18/12/2008, 10:43
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Respuesta: Paso de variables

Vale, lo probare y te dire algo.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #7 (permalink)  
Antiguo 18/12/2008, 12:33
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Respuesta: Paso de variables

Solucionado, asi directamente como lo has puesto tu no iba, pero he hecho que mandara cado una de las variables del array a otro array en blanco y luego mando por javascript las variables del array nuevo y va perfecto ;)
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
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 01:13.