Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JRRC

[Resolvido] Consulta SQL

Recommended Posts

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

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

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&noticias=$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

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

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

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

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

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

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

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

: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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.