JRRC 0 Denunciar post Postado Setembro 23, 2010 Boa noite a todos. Bom galera meu problema/dúvida é o seguinte, eu gostaria de saber como que faço para não passar o nome de um input quando eu realizar uma busca em um determinado form. Por exemplo, se tenho o seguinte form abaixo: <form id="formOnly" name="formOnly" method="get" action="<?php echo "$endereco/adm/14/consultar-noticias/"; ?>/"> <div id="campo-pesquisa">Titulo da Noticia: <input type="text" name="noticias" value="<?php echo $noticias;?>" size="30" /> Data de Postagem: <input type="text" value="<?php echo $data;?>" size="15" maxlength="14"/> <input type="submit" value="Consultar" class="submit"/> </div> </form> Se eu colocar para pesquisar por "pedro" no campo noticia a URL que aparece em meu browser é a seguinte abaixo: http://localhost/ciep/adm/14/consultar-noticias/?noticias=pedro O que eu gostaria era que minha URL me fosse retornada da seguinte forma abaixo: http://localhost/ciep/adm/14/consultar-noticias/pedro Alguém sabe me dizer como que eu posso fazer isso passar apenas o parâmetro que estou pesquisando sem o nome do input ?! Desde de já obrigado pela ajuda de todos. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 23, 2010 hum..acho que aí só com javascript cara... você impede o envio normal do formulario.. mas faz um redirecionamento... Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Setembro 23, 2010 Olá William Bruno. Estou querendo fazer isso devido a eu está fazendo um sistema (pequeno, ainda) usando URLs amigável, e estou com problema em reescrever minha URL quando realizo uma determinada busca no banco. Quando realizo uma busca no banco ela me aparece da seguinte forma abaixo http://localhost/ciep/adm/14/consultar-noticias/?noticias=neymar&data=2010%2F09%2F22 No meu arquivo .htaccess a reescrevi da seguinte forma abaixo RewriteRule ^adm\/([0-9]*)\/?([a-z0-9_-]*)\/?([a-z0-9_-]*)\/?([0-9]{4})/([0-9]{2})/([0-9]{2})\/?$ adm/index.php?link=$1&secao=$2¬icias=$3&data=$4-$5-$6 E ela funciona caso eu digite o valor direto na URL, ou seja, se eu fizer da seguinte forma abaixo. http://localhost/ciep/adm/14/consultar-noticias/neymar/2010/09/22 Mas caso eu digite o valor no form e mande realizar a busca a URL que me é retornada é sempre a seguinte abaixo, e dessa forma a consulta nunca é realizada. http://localhost/ciep/adm/14/consultar-noticias/?noticias=neymar&data=2010%2F09%2F22 Alguém sabe me dizer o que eu devo fazer para que quando eu digitar os valores no meu formulário a URL ficar da seguinte forma abaixo ?! http://localhost/ciep/adm/14/consultar-noticias/neymar/2010/09/22 Desde de já obrigado pela ajuda de todos, té mais. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 23, 2010 cara.. dizer eu já disse :lol: exemplo: <html> <head> <script type="text/javascript"> window.onload = function() { id('f_teste').onsubmit = function() { window.location.href += id('busca').value+'/'+id('data').value; return false; } } function id( el ){ return document.getElementById( el ); } </script> </head> <body> <form action="" method="get" id="f_teste"> <label><input type="text" name="busca" id="busca" value="neymar" /></label> <label><input type="text" name="data" id="data" value="2010/09/22" /></label> <label><input type="submit" name="ok" value="ok" /></label> </form> </body> </html>url antes:http://localhost/ url depois de enviar: http://localhost/neymar/2010/09/22 url se não tivesse o javascript: localhost/?busca=neymar&data=2010%2F09%2F22&ok=ok Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Setembro 23, 2010 Olá William Bruno, o script deu certinho, obrigado ai :D Mais surgiu-me uma outra dúvida, por exemplo caso eu mande fazer uma busca pela data 22-09-2010 a seguinte url abaixo me é retornada. http://localhost/ciep/adm/14/consultar-noticias/2010/09/22 Mais por exemplo, caso eu já tenha realizado uma busca pela data, e queria fazer pelo nome e o coloque o nome sem apagar a data do campo de busca a seguinte URL é formada. http://localhost/ciep/adm/14/consultar-noticias/22-09-2010/neymar/22-09-2010 Como você pode notar a primeira data não é apagada, ou seja, a URL não é resetada. O que eu gostaria de saber se é possível a cada busca resetar a URL e passar nela apenas os parâmetros que estão no meu campos de busca. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 23, 2010 ai precisa pensar cara... usando caminhos absolutos... ou guardando numa variavel qual era a 'url inicial'... não sei... ^_^, mas tem varios algoritmos pra resolver isso.. dá uma pensada. Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Setembro 23, 2010 Olá William Bruno. A maneira que consigo imaginar que poderia dá certo, consistem no seguinte, se no window.location.href eu pegasse o valor até a "/" (http://localhost/ciep/adm/14/consultar-noticias/) que seria apenas esse valor ai, como se eu estivesse dando um explode na url. Então toda vez que eu submetesse a pagina a uma nova consulta, os valores passados seriam os de meus campos. A questão é, como que eu faço para dar um explode em javascript ?! Essa é a maneira que consigo imaginar, você consegue uma outra ?! Até mais. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 23, 2010 A questão é, como que eu faço para dar um explode em javascript ?! procure por .split() Essa é a maneira que consigo imaginar, você consegue uma outra ?! consigo... talvez algo como: var url_inicial = 'http://localhost/ciep/adm/14/consultar-noticias/'; e ai, você incrementa nisso... Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Setembro 23, 2010 Olá William Bruno. Eu fiz isso e remontei a URL ficando da seguinte forma abaixo var endereco = window.location.href; var url = endereco.split("/"); var urlFull = url[0] + '/' + '/' + url[2] + '/' + url[3] + '/' + url[4] + '/' + url[5] + '/' + url[6] + '/'; Mas quando incremento-a na função a consulta não é realizada, na verdade nada acontece. Meu código está da seguinte forma abaixo. var endereco = window.location.href; var url = endereco.split("/"); var urlFull = url[0] + '/' + '/' + url[2] + '/' + url[3] + '/' + url[4] + '/' + url[5] + '/' + url[6] + '/'; window.onload = function() { id('formOnly').onsubmit = function() { var noticias = document.getElementById("noticias").value; var data = document.getElementById("data").value; if (noticias != "" && data == "") { urlFull += '/' + id('noticias').value; return false; } else if (noticias == "" && data != "") { urlFull += '/' + id('data').value; return false; } else if (noticias != "" && data != "") { urlFull += '/' + id('noticias').value + '/' + id('data').value; return false; } else { urlFull += ""; return false; } } } function id( el ) { return document.getElementById( el ); } Você sabe me dizer aonde que estou errando ?! Agora está quase certo, bastou deixar da seguinte forma abaixo que quase todas as minhas condições deram certas :) window.location.href = urlFull + parametros O único problema está no else, ou seja, caso eu ja tenha feito uma busca e apaga os dois campos e clik em consultar, para retornar pra URL inicial da pagina de busca. O deixei da seguinte forma abaixo: else { window.location.href = urlFull; return false; } Você sabe como ajeitar isso ?! Desde de já obrigado pelas dicas William Bruno. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 23, 2010 faltou fazer o redirecionamento amigo... window.location.href = ....até ai, você só criou a variavel... mas se é pra fazer dessa forma... faz logo com uma variavel para conter a url_inicial. Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Setembro 23, 2010 :mellow: Agora deu tudo certo, acho que eu tinha alterado e não tinha atualizado a página. Mais uma vez, obrigado pelas dicas William Bruno. Até a próxima, abraço. Compartilhar este post Link para o post Compartilhar em outros sites