Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve galera!
Estou com problema no envio de um formulário de busca com url amigável.
index.php
<form action="index.php?pg=detalhes" id="topo_busca" method="post">
<label id="busca"></label>
<input name="ref" type="text" value="Busca por referência" />
<input name="btn_busca" title="Buscar" type="submit" value="" />
</form>
detalhes.php
$referencia = isset($_GET['ref']) ? $_GET['ref'] : $_POST['ref'];
Desta forma funciona, mas fica ...index.php?pg=detalhes e gostaria que ficasse assim .../detalhes/2
dd designer!
Já utilizo esta regra RewriteRule ^detalhes/([0-9]+)$ index.php?pg=detalhes&ref=$1 mas não estou conseguindo utilizar esta regra do formulário...
>
dd designer!
Já utilizo esta regra RewriteRule ^detalhes/([0-9]+)$ index.php?pg=detalhes&ref=$1 mas não estou conseguindo utilizar esta regra do formulário...
Opa!
Se voce ja esta utilizando a regra entao o unico problema que vejo e o prorpio link action do seu form que aponta pra url real e nao pra amigavel...
Experimente modificar o action na submissao:
<form action="detalhes" id="topo_busca" method="post" onsubmit="this.action = 'detalhes/'+this.ref.value+'/'">
<label id="busca"></label>
<input name="ref" type="text" value="Busca por referência" />
<input name="btn_busca" title="Buscar" type="submit" value="" />
</form>
Esta "gambiarra" e so pra lhe inspirar a desenvolver uma solicao legal, uma funcao pro exemplo, fica a dica. ;)
Valew InterPlanet!
Só para Jquery...
$('#topo form').submit(function(){
var url = $('input[name=ref]', this).val();
window.location.href = 'detalhes/'+url;
return false;
});
no apache: para funcionar você tem que ter uma regra de rewrite para capturar a variável get pg=detalhes
sua url pode ficar /detalhes/2 assim pg=detalhes&id=2
RewriteEngine on
RewriteRule ^/([0-9]+)\/([0-9]+)\/?$ index.php?pg=$1&id=$2
pesquisa sobre urls amigáveis ou friendly url que tem muito material
se for outro servidor web não é tão simples quanto no apache, aí pesquise sobre rewrite para o webserver em uso.