Oferta Nacional - 234x60

Arquivo

Textos com Etiquetas ‘autocomplete html’

Simple AutoComplete JQuery Plugin

DOWNLOAD

http://blog.idealmind.com.br/exemplos/simpleautocomplete/simpleautocomplete.rar

DEMO

http://blog.idealmind.com.br/exemplos/simpleautocomplete/

ENGLISH

Simple AutoComplete JQuery Plugin screenshot

The Simple JQuery AutoComplete Plugin allows you to add autocomplete functionality easily in text fields on your site.

It also has resources to bring other data in the autocomplete list, as the id of the element, performing a callback function to store these data in other inputs.

You can also:
* Use multiple autocomplete on the same page
* Pass an extra parameter to filter the results of a sql query
* Stylize each autocomplete in different ways.

How to use it

To use the Simple AutoComplete JQuery Plugin is very easy. Just use the syntax:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="simpleautocomplete.js"></script>
<script type="text/javascript">
	$(document).ready(function(){
		$("#input_fied_id").simpleAutoComplete("query_processor.php");
	});
</script>

Enter the css that will be used to style the auto complete:

<link rel="stylesheet" type="text/css" href="simpleAutoComplete.css" />

And the field that will run the autocomplete:

<input type="text" id="input_fied_id" name="estado" />

Optional Features:

Callback Function

You can use a callback function that will be performed by selecting an autocomplete item, bringing extra data.

To do it, use the syntax:

<script type="text/javascript">
	$(document).ready(function(){
		$("#input_fied_id").simpleAutoComplete("query_processor.php",null,callbackfunctionName);
	});

	// And create a callbackfunction
	function callbackfunctionName( par )
	{
		$("#id_estado").val( par[0] );
	}
</script>

The variable ‘par’ is a vector with additional data brought by the query for each item (stored in an attribute of the item).

The callback is useful for you to bring other data beyond what appears in the autocomplete, as the id of an autocomplete option, or any other data (see the demo that illustrates this feature) to be returned by the file that runs the query, and store it in the input “id_estado” (you can bring as many parameters as you want, and store them in different fields).

Optional parameters

You can use the optional parameters to add more detail and customize each autocomplete.

identifier : to enable the file (eg php) that will process the query to identify which query is processed, and to identify an autocomplete on a page that has more than one autocomplete.

autoCompleteClassName : if you want to use a custom css class name (default ‘autocomplete’). This is useful to avoid conflicts, or if you want to style each autocomplete differently.

selectedClassName : has the same purpose autoCompleteClassName, but applies for the pre-selected autocomplete item, eg, on mouse over (default ‘sel’).

attrCallBack : if you want to store the parameters that will be passed to the callback function in other list attribute (default ‘rel’).

extraParamFromInput : useful if you want to pass an additional parameter to the query, in order to filter the results. This value must be one input field (this way the value can be variable).

Compatibility

Simple AutoComplete version 1.1.0 has been tested, exhibiting the same behavior in the following browsers: IE6, IE7, IE8, Safari, Chrome and Firefox.





PORTUGUÊS

Hoje eu criei um novo sistema autocomplete, para substituir o antigo que estava tento bugs no IE. Este autocomplete é um plugin JQuery, fácil de integrar e customizar.

Simple AutoComplete JQuery Plugin screenshot

O Simple AutoComplete JQuery Plugin permite que você adicione a funcionalidade de autocomplete facilmente em campos de texto do seu site.

Ele também possui recursos para trazer outros dados na lista do autocomplete, como o id do elemento, executando uma função de callback para armazenar estes dados em outros inputs.

Você ainda pode:
* utilizar vários autocompletes numa mesma página
* passar um parâmetro extra para filtrar os resultados de uma consulta sql
* estilizar cada autocomplete de maneiras diferentes.

Como usar

Para usar o Simple AutoComplete JQuery Plugin é muito fácil. Basta usar a sintaxe:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="simpleautocomplete.js"></script>
<script type="text/javascript">
	$(document).ready(function(){
		$("#input_fied_id").simpleAutoComplete("query_processor.php");
	});
</script>

Insira o css que será usado para estilizar o auto complete:

<link rel="stylesheet" type="text/css" href="simpleAutoComplete.css" />

E o campo que será executado o autocomplete:

<input type="text" id="input_fied_id" name="estado" />

Recursos opcionais:

Função de Callback

Você pode utilizar uma função de callback, que será executada ao selecionar um item do autocomplete, trazendo dados extras.

Para isso, utilize a sintaxe:

<script type="text/javascript">
	$(document).ready(function(){
		$("#input_fied_id").simpleAutoComplete("query_processor.php",null,callbackfunction);
	});

	// E crie a função de callback
	function callbackfunction( par )
	{
		$("#id_estado").val( par[0] );
	}
</script>

A variável ‘par’ é um vetor com dados adicionais trazidos pela consulta para cada item (armazenados em um atributo do item).

O callback é util para você trazer outros dados além do que aparecerá no autocomplete, como o id de uma opção do autocomplete, ou qualquer outro dado (veja o demo que exemplifica esta funcionalidade), que será retornado pelo arquivo que executará a consulta, e armazenar no input “id_estado” (você pode trazer quantos parâmetros quiser, e armazená-los em campos diferentes).

Parâmetros opcionais

Você pode utilizar os parâmetros opcionais para adicionar mais detalhes e personalizar cada autocomplete.

São eles:

identifier : útil para que o arquivo (php por exemplo) que processará a consulta possa identificar qual consulta será processada, e para identificar um autocomplete numa página que tenha mais de um autocomplete.

autoCompleteClassName : caso você queira utilizar um nome de classe css diferente da padrão (padrão ‘autocomplete’). Isso é útil para evitar conflitos, ou caso você queira estilizar diferentemente vários autocompletes.

selectedClassName : tem o mesmo propósito de autoCompleteClassName, porém se aplica à opção pré-selecionada dos resultados do autocomplete (padrão ‘sel’).

attrCallBack : caso você queira que os parâmetros que serão passados para a função de callback sejam armazenados em um atributo diferente do padrão, que é ‘rel’.

extraParamFromInput : útil caso você queira passar um parâmetro adicional à consulta, com o intuito de filtrar os resultados. Este valor deve estar em um campo input (desta forma o valor pode ser variável).

Compatibilidade

O Plugin simpleAutoComplete foi testado apresentando o mesmo comportamento, nos seguintes navegadores: IE6, IE7, IE8, Safari, Chrome e Firefox.

Licence

This plugin is under GNU GENERAL PUBLIC LICENSE.





Posts Relacionados:

JQuery autocomplete em ajax com php e mysql

Olá!

Pessoal, desenvolvi um novo sistema de auto complete, na forma de um plugin JQuery, o Simple AutoComplete JQuery Plugin.

O Simple AutoComplete JQuery Plugin é mais fácil de integrar e resolve os BUGs que aconteciam no IE, na funcionalidade deste tutorial.

Você pode baixá-lo e ver a documentação em : http://blog.idealmind.com.br/projetos/simple-autocomplete-jquery-plugin/

Neste tutorial vou mostrar para você como fazer um autocomplete usando JQuery e AJAX, estilizado com css, e consultando banco de dados MySQL com PHP.

O resultado final será como a imagem abaixo:
autocomplete

Antes de tudo, baixe os arquivo necessários: http://blog.idealmind.com.br/exemplos/autocomplete/autocomplete.rar

Lá você encontra os arquivos javascript e css, e também o php, uma página de exemplo e as sqls.

Bom, depois de baixado, vamos ao primeiro passo, que será criar uma tabela no banco de dados, e inserir alguns dados.

Quero deixar um agradecimento e os créditos para o pessoal do webartz (http://www.webartz.com.br/mysql/banco-mysql-de-cidades-e-estados-do-brasil/),  pois foi onde encontrei e baixei as sqls com os dados das cidades e estados do brasil.

Vamos criar uma tabela para o nosso exemplo, com os estados do Brasil:

CREATE TABLE `estados` (
	`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
	`sigla` VARCHAR(2) NOT NULL,
	`estado` VARCHAR(45) NOT NULL,
	PRIMARY KEY (`id`),
	INDEX `ix_estado`(`estado`)
)
ENGINE = MyISAM
CHARACTER SET utf8 COLLATE utf8_general_ci;

E agora vamos inserir os estados na tabela:

INSERT INTO `estados` (id, sigla, estado ) VALUES
	(1, 'AC', 'Acre'),
	(2, 'AL', 'Alagoas'),
	(3, 'AM', 'Amazonas'),
	(4, 'AP', 'Amapá'),
	(5, 'BA', 'Bahia'),
	(6, 'CE', 'Ceará'),
	(7, 'DF', 'Distrito Federal'),
	(8, 'ES', 'Espírito Santo'),
	(9, 'GO', 'Goiás'),
	(10, 'MA', 'Maranhão'),
	(11, 'MG', 'Minas Gerais'),
	(12, 'MS', 'Mato Grosso do Sul'),
	(13, 'MT', 'Mato Grosso'),
	(14, 'PA', 'Pará'),
	(15, 'PB', 'Paraíba'),
	(16, 'PE', 'Pernambuco'),
	(17, 'PI', 'Piauí'),
	(18, 'PR', 'Paraná'),
	(19, 'RJ', 'Rio de Janeiro'),
	(20, 'RN', 'Rio Grande do Norte'),
	(21, 'RO', 'Rondônia'),
	(22, 'RR', 'Roraima'),
	(23, 'RS', 'Rio Grande do Sul'),
	(24, 'SC', 'Santa Catarina'),
	(25, 'SE', 'Sergipe'),
	(26, 'SP', 'São Paulo'),
	(27, 'TO', 'Tocantins')
;

Agora vamos criar um arquivo HTML vazio:

<html>
	<head>

	</head>
	<body>

	</body>
</html>

Agora, dentro da tag <head> vamos incluir os arquivos necessários:

	<script type="text/javascript" src="js/autocomplete.js"></script>
	<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
	<link rel="stylesheet" type="text/css" href="css/autocomplete.css">

Quero deixar claro que o arquivo autocomplete.js deve ser chamado antes da JQuery, por questões de compatibilidade.

Feito isso, vamos criar, dentro da tag <body> o campo input onde será digitado o texto e aparecerá o autocomplete:


	<input type="text" name="campo_estado" id="campo_estado" />

Observe os valores dos atributos name e id: campo_estado. Estes valores serão a referência para a JQuery.

E agora vamos criar 3 campos, anda dentro da tag <body>, onde armazenaremos os dados referentes a opção que for selecionada no autocomplete:

	<input type="text" id="id_val" name="id" value="" /><br />
	<input type="text" id="estado_val" name="estado" value="" /><br />
	<input type="text" id="sigla_val" name="sigla" value="" />

Observe que foi criado um campo para cada resultado da consulta que o autocomplete vai fazer via AJAX, PHP e MySQL.

Ok. Agora vamos para a parte do javascript, que fará tudo funcionar. O seguinte código deve ser inserido entre as tags <head></head>, depois da chamada dos arquivos js e css que foram incluídos.


<script type="text/javascript">
$(document).ready(function(){
	// Aqui que tudo começa. Observe que usei o atributo name do campo que será digitado o texto como referência.
	new Autocomplete("campo_estado", function() {
		// Quando o autocomplete trazer o resultado da consulta, vai atribuir nos campos correspondentes
		this.setValue = function( id, estado, sigla ) {
			$("#id_val").val(id);
			$("#estado_val").val(estado);
			$("#sigla_val").val(sigla);
		}
		if ( this.isModified )
			this.setValue("");
		if ( this.value.length < 1 && this.isNotClick )
			return ;
		// O arquivo php abaixo é que será chamado via AJAX, sendo passado o parâmetro q com o valor digitado no campo
		return "ajax.php?q=" + this.value;
	});

});
</script>

Agora vamos criar o arquivo ajax.php, que receberá por GET o parâmetro q com o valor do texto que foi digitado no campo:

<?php
// Abaixo são definidas as variáveis de acesso ao banco de dados MySQL
$hostname = 'localhost';
$username = 'root';
$password = '';
$dbname = 'test';

// Abaixo o código de conexão ao banco
mysql_connect( $hostname, $username, $password ) or die ( 'Erro ao tentar conectar ao banco de dados.' );
mysql_select_db( $dbname );

// Na linha abaixo é dado um escape, para retirar caracteres que possam prejudicar a consulta sql
$q = mysql_real_escape_string( $_GET['q'] );

// Abaixo a sql que retornará os dados
$sql = "SELECT * FROM estados where locate('$q',estado) > 0 order by locate('$q',estado) limit 10";

// Abaixo executo a sql e atribuo o resultado da consulta à variável $res
$res = mysql_query( $sql );

// Para cada resultado encontrado, será gerada uma linha no autocomplete, colocando em negrito o termo digitado.
while( $campo = mysql_fetch_array( $res ) )
{
	$id = $campo['id'];
	$estado = $campo['estado'];
	$sigla = $campo['sigla'];
	$estado = addslashes($estado);
	$html = preg_replace("/(" . $q . ")/i", "<span style=\"font-weight:bold\">\$1</span>", $estado);

	// Veja que existe o atributo de evento onselect, que executará as funções de retorno no autocomplete
	echo "<li onselect=\"this.setText('$estado').setValue('$id','$estado','$sigla');\">$html ($sigla)</li>\n";
}
?>

Bom, seguindo esses passos, você poderá incluir uma funcionalidade de autocomplete poderosa em seu site. Agora basta personalizar e estilizar ao seu gosto!

Deixe seu comentário!

Related Posts Plugin for WordPress, Blogger...

Posts Relacionados:

SEO Powered by Platinum SEO from Techblissonline