Jump to content


Photo

Busca Ajax


  • Faça o login para participar
7 replies to this topic

#1 alphanet

alphanet

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado

Posted 01/05/2008, 16:55

Ola pessoal, o problema é o seguinte: To desenvolvendo uma busca em ajax, a pessoa vai digitando o que quer buscar e aparece automaticamente as opcoes de busca de acordo com aquilo que a pessoa digitou. ate ai tudo bem, a dificuldade esta no seguinte>>>>

script.js
<script type="text/javascript">
	
	function lookup(inputString) {
		if(inputString.length == 0) {
			// Hide the suggestion box.
			$('#suggestions').hide();
		} else {
			$.post("load.php", {queryString: ""+inputString+""}, function(data){
				if(data.length >0) {
					$('#suggestions').show();
					$('#autoSuggestionsList').html(data);
				}
			});
		}
	} // lookup
	
	function fill(thisValue) {
		$('#inputString').val(thisValue);
		setTimeout("$('#suggestions').hide();", 200);
	}
</script>
*esta pagina "load.php" conecta ao mysql e faz buscas de acordo com aquilo que a pessoa esta digitando.


codigo do formulario de busca:
<form method=\"post\" name=\"busca\" action=\"dashboard.php?tabela=motorista&id=cadchave&bar=chaves\">
	 <table width=\"100%\" border=\"0\" bgcolor=\"#CAD7F9\">
	<tr>
	  <td width=344>&nbsp;</td>
	  <td width=877>&nbsp;</td>
  </tr>
	<tr>
	  <td><div align=\"right\" class=\"style1\">Buscar Motorista: :  </div>
	  <label>		</label></td>
	  <td>&nbsp;
	  <input name=\"emp\" id=\"emp\" type=\"text\" value=\"35\" />
	  <input name=\"nomemotorista\" type=\"text\" size=\"50\" value=\"\" id=\"inputString\" onKeyUp=\"lookup(this.value);\" onBlur=\"fill();\" /></td>
  </tr>
	<tr>
	  <td height=\"45\" colspan=\"2\"><div>
		
			<div>
		  </div>
			
			<div class=\"suggestionsBox\" id=\"suggestions\" style=\"display: none;\">
				<img src=\"images/upArrow.gif\" style=\"position: relative; top: -12px; left: 30px;\" alt=\"upArrow\" />
				<div class=\"suggestionList\" id=\"autoSuggestionsList\">
&nbsp;				</div>
			</div>
		
	</div><br> <div align=\"center\"><input type=\"submit\" name=\"button\" id=\"button\" value=\"Cadastrar Chave - Etapa 2\"></div></td>
	</tr>
  </table>
</form>

Reparem que neste formulario tem o conteudo:
Tem o input emp que terá valor 35
eu preciso pegar o valor deste input e mandar junto na consulta do ajax, para fazer um filto no banco de dados, cada usuario terá um input emp com valores variados, e cada usuario poderá visualizar determinado conteudo no banco de dados de acordo com seu numero.

a dificuldade esta em passar para este script.js o valor deste campo input... como farei isto pessoal?

Edição feita por: alphanet, 01/05/2008, 16:56.


#2 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 01/05/2008, 17:38

Considerando que cada user terá seu ID o melhor não seria que este campo fosse hidden?

Mas enfim. Como parece que você está usando um framework JavaScript (acho que é jQuery) basta pegar o valor do campo com a forma getter de val():

$( '#emp' ).val()
Simples e indolor. Ajudei?

#3 alphanet

alphanet

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado

Posted 01/05/2008, 18:27

Se ajudar uso prototype.

$( '#emp' ).val()

Coloco onde no codigo?

#4 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 02/05/2008, 03:15

$.post("load.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
});

Esse segundo argumento serve para enviar os valores para a página de pesquisa. Veja mais: http://docs.jquery.c...atacallbacktype
Veja o exemplo que está no site, ele mostra como enviar mais de um valor. É só separar com uma vírgula.
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#5 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 07/05/2008, 10:08

Ele disse estar usando prototype, não jQuery .... :click:

Acho melhor fazer da seguinte forma. Pelo uso de barras de escape antes das aspas, esses valores você está imprindo com o PHP. Então para evitar usar um campo input extra, poderia fazer assim:

<input name="nomemotorista" type="text" size="50" value="" id="inputString" onKeyUp="lookup(this.value,<?php print $emp; ?>);" onBlur="fill();" />

Eu adicionei o valor de emp na chamada da função, assim não precisa de outro campo. Veja também a forma que eu escrevi o PHP, acho mais fácil só imprimir o necessário.

A sua função ficaria assim:
function lookup(inputString,emp) {
		if(inputString.length == 0) {
			// Hide the suggestion box.
			$('#suggestions').hide();
		} else {
			$.post("load.php", {nome: ""+inputString+"",emp: ""+emp+""}, function(data){
// Continua normalmente

Entendeu mais ou menos ?!
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#6 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 07/05/2008, 10:22

Eu tentei entender o post dele ali em cima.

Se ajudar uso prototype.

Está sem vírgula, mas muitos usuários esquecem da vírgula. Nesse caso, se você colocar uma vírgula depois do 'ajudar', ele estará dizendo que, se for melhor (se ajudar), ele pode vir a usar o prototype. =D

E o código que ele postou não me parece com funções do prototype. O prototype usa uns new Ajax.request()/updater()/etc para o ajax. :huh:
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador

#7 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 08/05/2008, 11:34

Agora que você falou eu entendi ...

Achei estranho mesmo ele falar do prototype mas a sintaxe ser igual a do jQuery .... tanto que eu escrevi para o jQuery ...


Acho que vou fazer um curso de interpretação de texto ... :blink:
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#8 Alex Hiroshi

Alex Hiroshi

    Super Veterano

  • Ex-Admins
  • 4923 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 08/05/2008, 18:44

É complicado entender. Eu mesmo fiquei um tempinho tentando entender antes de responder. =D
Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Ex-Administrador




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq