> ## Documentation Index
> Fetch the complete documentation index at: https://docs-fw.madbuilder.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# TMultiSearch

> O `TMultiSearch` é um componente de seleção múltipla que permite ao usuário escolher vários itens de uma lista pré-definida. Este componente é particularmente útil para situações onde o usuário precisa selecionar mais de uma opção dentro de um conjunto de itens.

Derivado da classe `TSelect`, métodos herdados não sobrescritos podem também ser utililzados por objetos `TMultiSearch`. Acesse a [documentação do componente/classe-pai](https://madbuilder.mintlify.app/selecao-de-dados-fixos/tselect) para conhecê-los.

## \_\_construct

Construtor da classe `TMultiSearch`.

**Parâmetros:**
<ResponseField name="$name" type="mixed" required>Nome do widget.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecaoEstado = new TMultiSearch('selecaoEstado');
$selecaoEstado->setSize(220, 70);
$selecaoEstado->placeholder = 'Estado';
$selecaoEstado->addItems(['1'=>'Acre','2'=>'Alagoas','3'=>'Amapá','4'=>'Amazonas','5'=>'Bahia','6'=>'Ceará','7'=>'Distrito Federal','8'=>'Espírito Santo','9'=>'Goiás','10'=>'Maranhão','11'=>'Mato Grosso','12'=>'Mato Grosso do Sul','13'=>'Minas Gerais','14'=>'Pará','15'=>'Paraíba','16'=>'Paraná','17'=>'Pernambuco','18'=>'Piauí','19'=>'Rio de Janeiro','20'=>'Rio Grande do Norte','21'=>'Rio Grande do Sul','22'=>'Rondônia','23'=>'Roraima','24'=>'Santa Catarina','25'=>'São Paulo','26'=>'Sergipe','27'=>'Tocantins']);
```

<br />

## setSize

Define o tamanho do widget.

**Parâmetros:**
<ResponseField name="$width" type="mixed" required>Largura do widget.</ResponseField>
<ResponseField name="$height" type="mixed" default="NULL">(Opcional) Altura do widget.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecao = new TMultiSearch('selecao');
$selecao->setSize(250, 150);
```

<br />

## getSize

Retorna o tamanho atual do widget.

**Exemplo de código:**

```php theme={null}
$selecaoEstado = new TMultiSearch('selecaoEstado');
$selecaoEstado->setSize(220, 125);
$tamanho = $selecaoEstado->getSize(); // (220, 125)
```

<br />

## setMinLength

Define o comprimento mínimo para a busca.

**Parâmetros:**
<ResponseField name="$length" type="mixed" required>Comprimento mínimo.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecaoEstado = new TMultiSearch('selecaoEstado');
$selecaoEstado->setSize(220, 70);
$selecaoEstado->addItems(['1'=>'Acre','2'=>'Alagoas','3'=>'Amapá','4'=>'Amazonas','5'=>'Bahia','6'=>'Ceará','7'=>'Distrito Federal','8'=>'Espírito Santo','9'=>'Goiás','10'=>'Maranhão','11'=>'Mato Grosso','12'=>'Mato Grosso do Sul','13'=>'Minas Gerais','14'=>'Pará','15'=>'Paraíba','16'=>'Paraná','17'=>'Pernambuco','18'=>'Piauí','19'=>'Rio de Janeiro','20'=>'Rio Grande do Norte','21'=>'Rio Grande do Sul','22'=>'Rondônia','23'=>'Roraima','24'=>'Santa Catarina','25'=>'São Paulo','26'=>'Sergipe','27'=>'Tocantins']);

$selecaoEstado->setMinLength(2);
```

<br />

## setMaxSize

Define o número máximo de itens que podem ser selecionados.

**Parâmetros:**
<ResponseField name="$maxsize" type="mixed" required>Número máximo de itens.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecaoEstado = new TMultiSearch('selecaoEstado');
$selecaoEstado->setSize(220, 70);
$selecaoEstado->addItems(['1'=>'Acre','2'=>'Alagoas','3'=>'Amapá','4'=>'Amazonas','5'=>'Bahia','6'=>'Ceará','7'=>'Distrito Federal','8'=>'Espírito Santo','9'=>'Goiás','10'=>'Maranhão','11'=>'Mato Grosso','12'=>'Mato Grosso do Sul','13'=>'Minas Gerais','14'=>'Pará','15'=>'Paraíba','16'=>'Paraná','17'=>'Pernambuco','18'=>'Piauí','19'=>'Rio de Janeiro','20'=>'Rio Grande do Norte','21'=>'Rio Grande do Sul','22'=>'Rondônia','23'=>'Roraima','24'=>'Santa Catarina','25'=>'São Paulo','26'=>'Sergipe','27'=>'Tocantins']);

$selecaoEstado->setMaxSize(3);
```

<br />

## setValue

Define o valor do campo.

**Parâmetros:**
<ResponseField name="$value" type="mixed" required>Valor do campo.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecaoEstado = new TMultiSearch('selecaoEstado');
$selecaoEstado->setSize(220, 70);
$selecaoEstado->addItems(['1'=>'Acre','2'=>'Alagoas','3'=>'Amapá','4'=>'Amazonas','5'=>'Bahia','6'=>'Ceará','7'=>'Distrito Federal','8'=>'Espírito Santo','9'=>'Goiás','10'=>'Maranhão','11'=>'Mato Grosso','12'=>'Mato Grosso do Sul','13'=>'Minas Gerais','14'=>'Pará','15'=>'Paraíba','16'=>'Paraná','17'=>'Pernambuco','18'=>'Piauí','19'=>'Rio de Janeiro','20'=>'Rio Grande do Norte','21'=>'Rio Grande do Sul','22'=>'Rondônia','23'=>'Roraima','24'=>'Santa Catarina','25'=>'São Paulo','26'=>'Sergipe','27'=>'Tocantins']);

$selecaoEstado->setValue('3');
```

<br />

## setValueSeparator

Define o separador dos valores no campo.

**Parâmetros:**
<ResponseField name="$sep" type="mixed" required>Separador.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecaoEstado = new TMultiSearch('selecaoEstado');
$selecaoEstado->setSize(220, 70);
$selecaoEstado->addItems(['1'=>'Acre','2'=>'Alagoas','3'=>'Amapá','4'=>'Amazonas','5'=>'Bahia','6'=>'Ceará','7'=>'Distrito Federal','8'=>'Espírito Santo','9'=>'Goiás','10'=>'Maranhão','11'=>'Mato Grosso','12'=>'Mato Grosso do Sul','13'=>'Minas Gerais','14'=>'Pará','15'=>'Paraíba','16'=>'Paraná','17'=>'Pernambuco','18'=>'Piauí','19'=>'Rio de Janeiro','20'=>'Rio Grande do Norte','21'=>'Rio Grande do Sul','22'=>'Rondônia','23'=>'Roraima','24'=>'Santa Catarina','25'=>'São Paulo','26'=>'Sergipe','27'=>'Tocantins']);

$selecaoEstado->setValueSeparator(';');
```

<br />

## disableMultiple

Desativa a seleção múltipla do componente.

**Exemplo de código:**

```php theme={null}
$selecaoEstado = new TMultiSearch('selecaoEstado');
$selecaoEstado->setSize(220, 70);
$selecaoEstado->addItems(['1'=>'Acre','2'=>'Alagoas','3'=>'Amapá','4'=>'Amazonas','5'=>'Bahia','6'=>'Ceará','7'=>'Distrito Federal','8'=>'Espírito Santo','9'=>'Goiás','10'=>'Maranhão','11'=>'Mato Grosso','12'=>'Mato Grosso do Sul','13'=>'Minas Gerais','14'=>'Pará','15'=>'Paraíba','16'=>'Paraná','17'=>'Pernambuco','18'=>'Piauí','19'=>'Rio de Janeiro','20'=>'Rio Grande do Norte','21'=>'Rio Grande do Sul','22'=>'Rondônia','23'=>'Roraima','24'=>'Santa Catarina','25'=>'São Paulo','26'=>'Sergipe','27'=>'Tocantins']);

$selecaoEstado->disableMultiple();
```

<br />

## disableClear

Desativa a opção de limpar a seleção.

**Exemplo de código:**

```php theme={null}
$selecaoEstado = new TMultiSearch('selecaoEstado');
$selecaoEstado->setSize(220, 70);
$selecaoEstado->addItems(['1'=>'Acre','2'=>'Alagoas','3'=>'Amapá','4'=>'Amazonas','5'=>'Bahia','6'=>'Ceará','7'=>'Distrito Federal','8'=>'Espírito Santo','9'=>'Goiás','10'=>'Maranhão','11'=>'Mato Grosso','12'=>'Mato Grosso do Sul','13'=>'Minas Gerais','14'=>'Pará','15'=>'Paraíba','16'=>'Paraná','17'=>'Pernambuco','18'=>'Piauí','19'=>'Rio de Janeiro','20'=>'Rio Grande do Norte','21'=>'Rio Grande do Sul','22'=>'Rondônia','23'=>'Roraima','24'=>'Santa Catarina','25'=>'São Paulo','26'=>'Sergipe','27'=>'Tocantins']);

$selecaoEstado->disableClear();
```

<br />

## disableSearch

Desativa a função de busca dentro do componente.

**Exemplo de código:**

```php theme={null}
$selecaoEstado = new TMultiSearch('selecaoEstado');
$selecaoEstado->setSize(220, 70);
$selecaoEstado->addItems(['1'=>'Acre','2'=>'Alagoas','3'=>'Amapá','4'=>'Amazonas','5'=>'Bahia','6'=>'Ceará','7'=>'Distrito Federal','8'=>'Espírito Santo','9'=>'Goiás','10'=>'Maranhão','11'=>'Mato Grosso','12'=>'Mato Grosso do Sul','13'=>'Minas Gerais','14'=>'Pará','15'=>'Paraíba','16'=>'Paraná','17'=>'Pernambuco','18'=>'Piauí','19'=>'Rio de Janeiro','20'=>'Rio Grande do Norte','21'=>'Rio Grande do Sul','22'=>'Rondônia','23'=>'Roraima','24'=>'Santa Catarina','25'=>'São Paulo','26'=>'Sergipe','27'=>'Tocantins']);

$selecaoEstado->disableSearch();
```

<br />

## getPostData

Obtém os dados enviados pelo formulário.

**Exemplo de código:**

```php theme={null}
$selecao = new TMultiSearch('selecao');
$dadosPostados = $selecao->getPostData();
```

<br />

## enableField e disableField

(Método estático) Habilita e desabilita o campo no formulário.

**Parâmetros:**
<ResponseField name="$form_name" type="mixed" required>Nome do formulário.</ResponseField>
<ResponseField name="$field" type="mixed" required>Nome do campo.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecao = new TMultiSearch('selecao');
$selecao->setSize(220, 70);
$selecao->addItems(['1'=>'Opção 1','2'=>'Opção 2','3'=>'Opção 3']);

$btnHabilitar = new TButton('btnEnableField');
$btnHabilitar->addStyleClass('btn-default');
$btnHabilitar->setImage('far:circle #000000');
$btnHabilitar->setAction(new TAction([$this, 'habilitarCampo']), 'Habilitar Seleção');

$btnDesabilitar = new TButton('btnDisableField');
$btnDesabilitar->addStyleClass('btn-default');
$btnDesabilitar->setImage('far:circle #000000');
$btnDesabilitar->setAction(new TAction([$this, 'desabilitarCampo']), 'Desabilitar Seleção');
```

Código de exemplo das funções a serem chamadas, lembrando que essas funções precisam ser estáticas (static function).

```php theme={null}
public static function habilitarCampo($param = null)
{
    TMultiSearch::enableField('nomeForm', 'selecao');
}

public static function desabilitarCampo($param = null)
{
    TMultiSearch::disableField('nomeForm', 'selecao');
}
```

<br />

## clearField

(Método estático) Limpa o campo no formulário.

**Parâmetros:**
<ResponseField name="$form_name" type="mixed" required>Nome do formulário.</ResponseField>
<ResponseField name="$field" type="mixed" required>Nome do campo.</ResponseField>

**Exemplo de código:**

```php theme={null}
$selecao = new TMultiSearch('selecao');
$selecao->setSize(220, 70);
$selecao->addItems(['1'=>'Opção 1','2'=>'Opção 2','3'=>'Opção 3']);

$btnLimpar = new TButton('btnClearField');
$btnLimpar->addStyleClass('btn-default');
$btnLimpar->setImage('far:circle #000000');
$btnLimpar->setAction(new TAction([$this, 'limparCampo']), 'Limpar Seleção');
```

Código de exemplo da função a ser chamada, lembrando que essa função precisa ser estática (static function).

```php theme={null}
public static function limparCampo($param = null)
{
    TMultiSearch::clearField('nomeForm', 'selecao');
}
```
