Foros del Web » Programando para Internet » PHP »

Pasar url en función paginar

Estas en el tema de Pasar url en función paginar en el foro de PHP en Foros del Web. Buenos días, El problemilla que tengo es una mezcla entre php, flash y javascript. Pero pienso que los tiros pueden estar en el php... A ...
  #1 (permalink)  
Antiguo 27/09/2004, 06:15
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
Pasar url en función paginar

Buenos días,

El problemilla que tengo es una mezcla entre php, flash y javascript.
Pero pienso que los tiros pueden estar en el php...

A ver, tengo una función para paginar los resultados de una consulta sql y un botón de flash que tiene código javascript dentro.
El error que obtengo es que se esperaba ')'

Cabe decir que antes de introducirle el parámetro $Busca a la función ésta me funcionaba perfectamente ($Busca es una url). Y que si yo en vez de pasarle en la variable consulta <? print urlencode($Buscar) ?> le paso por ejemplo Hola también funciona

Llevo desde las 9 de la mañana con esto y no me veo capaz, voy a seguir dándole vueltas pues es importante que este error este solucionado lo antes posible.
Agradecería muchisimo si pudierais ayudarme, porque no entiendo que es lo que hago mal...

FUNCIÓN PAGINAR

Código:
function paginar($Buscar,$pag,$total,$tampag,$enlace) 
{ 
  $total_paginas = ceil($total/$tampag); 
  $anterior = $pag - 1; 
  $posterior = $pag + 1; 
  
  if ($pag>1)  $izquierda = urlencode($enlace).$anterior; 
	 
  for ($i=1; $i<$pag; $i++) $texto .= "<a href=\"$enlace$i\" class='Letras_Rojas'>&nbsp;$i&nbsp;</a>"; 
  $texto .= "<b>&nbsp;$pag&nbsp;</b>"; 
  for ($i=$pag+1; $i<=$total_paginas; $i++) $texto .= "<a href=\"$enlace$i\" class='Letras_Rojas'>&nbsp;$i&nbsp;</a>"; 
 
  if ($pag<$total_paginas) $derecha.=urlencode($enlace).$posterior;

$texto=" 
<div id='Texto'	align='center' style='position:absolute; width:500px; height:20px; z-index:1; left: 70px; top: 587px; overflow: hidden;'>
  <div align='center'><span class='formularios2'>PÁGINAS</span>
  <span class='Letras'>$texto</span>
  </div>
</div>"; 
?>

<div id="Layer1" style="position:absolute; width:154px; height:115px; z-index:12; left: 622px; top: 188px; visibility: visible;">
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="150" height="350">
    <param name="movie" value="iconos/navegar_busca.swf?consulta=<? print urlencode($Buscar) ?>&enlace_izq=<? print $izquierda ?>&enlace_der=<? print $derecha ?>">
    <param name="quality" value="high">
    <embed src="iconos/navegar_busca.swf?consulta=<? print urlencode($Buscar) ?>&enlace_izq=<? print $izquierda ?>&enlace_der=<? print $derecha ?>" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="150" height="350"></embed>
  </object>
</div>
<?
return ($texto);
}

BOTÓN DE FLASH

Código:
on (release) 
{ getURL("javascript:alert('"+consulta+"')"); }

LLAMADA A LA FUNCIÓN

Código:
echo paginar($Busca,$pag,$total,$tampag,"Busca_Venta.php?accion=".$accion."&pag=");
Si os puede servir para algo, he mirado también el código fuente del botón desde el navegador y este es el resutlado:

Código:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="150" height="350">
    <param name="movie" value="iconos/navegar_busca.swf?consulta=Select%2B%252A%2Bfrom%2Binmueble%2Bwhere%2BPrecio_Venta%2521%253D%2527%2527%2Band%2BVendido%253D%2527%2527&enlace_izq=&enlace_der=Busca_Venta.php%3Faccion%3D%26pag%3D2">
    <param name="quality" value="high">
    <embed src="iconos/navegar_busca.swf?consulta=Select%2B%252A%2Bfrom%2Binmueble%2Bwhere%2BPrecio_Venta%2521%253D%2527%2527%2Band%2BVendido%253D%2527%2527&enlace_izq=&enlace_der=Busca_Venta.php%3Faccion%3D%26pag%3D2" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="150" height="350"></embed>
  </object>
Muchisimas gracias de antemano,
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #2 (permalink)  
Antiguo 27/09/2004, 06:29
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,
Cita:
El error que obtengo es que se esperaba ')'
¿Quien te da el error? ¿PHP? ¿Flash? ¿Javascript? ¿En que linea?

Sin mas datos, apostaria por javscript. No se como trabaja Flash, pero supongo que en

on (release)
{ getURL("javascript:alert('"+consulta+"')"); }

lo que hace es usar esa cadena como URL, sustituyendo la variable por su valor. Con lo cual, si consulta contiene una ' y Flash la URLdecodea antes de ponerla, acabas teniendo una URL como

javascript:alert('SELECT .... ='valor'')

Si te fijas en las comillas de valor, estan produciendo un error de sintaxis javascript.

La solucion es que escapes el valor de consulta en Flash. En javascript creo que existe la funcion escape(), en Flash no se si tienen algo parecido.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 27/09/2004, 06:52
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
Si, el error lo da el javascript, en la línea 1 caracter 52...

No se si he entendido muy bien lo de la función escape...
He estado buscando cosillas y he probado con
on (release)
{ getURL("javascript:alert('"+escape(consulta)+"')") ; }
Pero sigue sin funcionar y dando el mismo error :(
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #4 (permalink)  
Antiguo 27/09/2004, 07:28
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
¿por qué no haces en flash un trace de la variable consulta para saber que te está llegando?. Para ver más claramente donde está el error yo activaría el depurador de javascript para saber en que punto exactamente da el error.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #5 (permalink)  
Antiguo 27/09/2004, 11:35
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
Como no estoy trabajando directamente con flash no me hace caso a los traces,
llevo toda la tarde igual.. no hay manera :(
Y seguramente será lo que me comentabais de las comillas de las variables, ¿Como puedo solucionarlo? No se que hacer !! :(
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #6 (permalink)  
Antiguo 27/09/2004, 14:03
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Como que no trabajas directamente con flash. No puedes modificar el .fla?
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #7 (permalink)  
Antiguo 28/09/2004, 02:16
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
Si, si puedo modificar el fuente,
pero como es un flash que esta en una pagina php como objeto no me muestra los traces... Los ignora...
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #8 (permalink)  
Antiguo 28/09/2004, 02:23
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
ya se lo que me quieres decir . Podrías hacer un campo de texto en flash y ahí guardar el valor y en tiempo de ejecución podrías ir viendo lo que te va poniendo.

¿Cuando te sale el error puedes depurarlo? porque así sabriamos que caracter está dando el error exactamente.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #9 (permalink)  
Antiguo 28/09/2004, 02:25
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Bueno, intenta escapar la cadena desde PHP:
Código PHP:
<? print urlencode(addslashes($Buscar)) ?>
Mas que nada, porque no creo que estes haciendo nada con esa cadena dentro de Flash.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #10 (permalink)  
Antiguo 28/09/2004, 06:24
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
Bueno, ya lo tengo solucionado...

Bufff, me ha costado lo mío y más

A ver, la historia iba por lo de las comillas como me dijisteis pero el encode y tal no funcionaba, al pasar la variable me pasaba las comillas simples con '\.

Al final tras muchas pruebas me dí cuenta que la única solución era pasar las variables por post y no por get (que es lo que transformaba así las comillas). Y eso hice... en el botón de flash llamar a la funcion en javascript que me hacia un submit de un formulario donde le paso por variables ocultas la variable $Buscar.

No sé si me he explicado muy bien...

Muchas gracias por todo y hasta la próxima... :)
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #11 (permalink)  
Antiguo 28/09/2004, 06:36
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Me alegro de que lo hayas solucionado .
__________________
¿Te apasiona el mundo del guión? El portal del guión
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 00:26.