Foros del Web » Programando para Internet » PHP » Zend »

[Zend Framework] url's amigables

Estas en el tema de [Zend Framework] url's amigables en el foro de Zend en Foros del Web. Holaaaaaaaaaaaaa Sí, ya se que este tema está muy mascado, pero no consigo dar con la solución a mi problema... En principio todo funciona correctamente ...
  #1 (permalink)  
Antiguo 14/07/2009, 05:39
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 1
Pregunta [Zend Framework] url's amigables [SOLUCIONADO]

Holaaaaaaaaaaaaa

Sí, ya se que este tema está muy mascado, pero no consigo dar con la solución a mi problema...

En principio todo funciona correctamente y a mi gusto hasta que llego a un formulario que usa el método get (no es info valiosa y me interesa que se vea en la url), y claro, el formulario al enviarse pone por pantalla el dichoso "?variable=", La enrutación creo que la tengo bien, porque si cambio eso mismo por una "/" el resultado es el esperado.

La cuestión es... ¿cómo cambio para que en el formulario (que por cierto es un select o lista ) no envie "?variable=" y si la "/" ¿?

Es una sentencia del routing del Zend o el del htaccess? o de ninguno de los dos (la verdad es que he probado en los dos...) , alomejor se puede cambiar el funcionamiento del select...? (lo dudo)

nada más! a ver si alguien me puede ayudar!! gracias!!

Última edición por yakukubu; 15/07/2009 a las 06:48 Razón: edito el título
  #2 (permalink)  
Antiguo 14/07/2009, 08:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: [Zend Framework] url's amigables

De hecho tienes que crear una ruta personalizada (usando el Zend_Route_Rewrite) y cuando armas tu URL le dices a Zend que lo haga basado en esa ruta.

Si esa variable la vas a pasar desde una pagina con Javascript por ejemplo entonces tu tienes que armar manualmente esa ruta.

Saludos.
  #3 (permalink)  
Antiguo 14/07/2009, 09:07
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: [Zend Framework] url's amigables

Hola, agradezco el interés, a ver si lo entiendo, yo tengo esto:

(uso un config.ini)

Código PHP:
routes.fotos.route "fotos/:nombre/:galeria"
routes.fotos.defaults.controller fotos
routes
.fotos.defaults.action index
routes
.fotos.defaults.galeria "" 
con este routing, las direcciones del tipo /fotos/gatorv/gatorv-pescando-en-el-mar
van perfectas, que es lo que busco.

el problema viene cuando llegamos aquí:

Código HTML:
<form class="jqtransform" name="fotoalbum" method="get" action="la accion">
<select class="form" name="galeria" onchange="document.fotoalbum.submit();">
<option selected value="gatorv-pescando-en-el-mar">gatorv pescando en el mar</option>
</select>
</form> 
en este caso, al seleccionar un elemento de la lista, la url se convierte en /fotos/gatorv?galeria=gatorv-pescando-en-el-mar
que es el error que intento subsanar.

Entonces, tengo que modificar de alguna manera el routing que tengo..? He buscando ejemplos pero no encuentro nada relacionado con mi problema. Lo otro que comentas, si bien el form sí apunta a un javascript, pero la dirección la paso via html....

Espero no haber dicho muchas barbaridades
  #4 (permalink)  
Antiguo 14/07/2009, 09:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: [Zend Framework] url's amigables

Exacto, en ese caso como la URL viene del cliente tu tienes que armar el URL usando Javascript para pasar la variable por el routing.

Saludos.
  #5 (permalink)  
Antiguo 15/07/2009, 06:40
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: [Zend Framework] url's amigables

sip, ahora lo he pillado, bueno pongo por aquí la solución al problema, por si alguna vez alguien cae por este hilo

Código PHP:
<script type="text/javascript">
$(
document).ready(function (){
    $(
".form").change(function() {
        var 
galeria = $(this).val();
        var 
url "la url que queramos poner" galeria;
        
window.location.replace(url);
    });
});
</script> 
(en el html hay que quitar el evento "onchange" del select)

pues nada más :) gracias por el interés GatorV, bye bye
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 10:01.