Ricerca Avanzata e Ricerca per Colonna
Tre superfici di ricerca correlate: il campo di ricerca globale, la ricerca per colonna nell'intestazione, e il pannello Ricerca Avanzata a più condizioni.
1. Il campo di ricerca semplice/globale
La barra degli strumenti di ogni griglia ha un campo di ricerca che cerca contemporaneamente in tutte le colonne visibili. Il modo in cui un termine digitato viene inserito in un valore SQL LIKE è personalizzabile con search_pattern():
public function search_pattern(string $pattern): self
$pattern deve contenere il segnaposto letterale {term}, sostituito con il termine digitato al momento della richiesta. Il valore predefinito è '%{term}%' (contiene).
$xcrud->search_pattern('{term}%'); // inizia con, invece di contiene
$xcrud->search_pattern('%{term}'); // termina con
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
$pattern | string | - | Deve contenere {term}. Genera un'eccezione in caso contrario. |
Questo influisce solo sul campo di ricerca semplice e sui campi di ricerca per colonna nell'intestazione, descritti sotto - gli operatori contiene/inizia con/termina con del pannello Ricerca Avanzata sono scelte esplicite, per singola condizione, indipendenti da search_pattern().
2. Ricerca per colonna nell'intestazione
Ogni colonna può anche mostrare un proprio piccolo campo di ricerca direttamente sotto la propria intestazione, permettendo a un visitatore di filtrare per quella singola colonna invece di cercare in tutte le colonne visibili contemporaneamente. Si attiva/disattiva dal menu ⋯ Altre Opzioni della barra degli strumenti della griglia ("Mostra ricerca per colonna") - vedi Barra degli Strumenti della Griglia e il Menu Altre Opzioni per il resto di ciò che si trova in quel menu. La scelta di attivazione/disattivazione del visitatore viene ricordata per browser durante la sessione, quindi non serve riattivarla a ogni caricamento di pagina.
Le condizioni di ricerca per colonna si combinano con il campo di ricerca semplice e con le eventuali condizioni della Ricerca Avanzata - tutte e tre restringono il risultato insieme, non si sostituiscono a vicenda.
3. Il pannello Ricerca Avanzata
Apribile da un pulsante "Advanced" nella barra degli strumenti, è un generatore di filtri a più condizioni: aggiungi un numero qualsiasi di righe di condizione, ciascuna che sceglie un campo, un operatore e un valore, poi scegli se le righe si combinano in AND ("All conditions") oppure in OR ("Any condition") prima di cliccare Apply.
$xcrud = Xcrud::get_instance();
$xcrud->table('products');
$xcrud->route('advanced-search-demo');
$xcrud->columns('productCode,productName,productLine,productVendor,quantityInStock,buyPrice,MSRP');
$xcrud->change_type('buyPrice', 'price', '2', ['prefix' => '$']);
$xcrud->change_type('MSRP', 'price', '2', ['prefix' => '$']);
Non è richiesto alcun PHP aggiuntivo per abilitare il pannello stesso - è integrato automaticamente in ogni griglia. In questa pagina, aprendo "Advanced" e combinando, ad esempio, productLine = "Classic Cars" AND buyPrice > 50, si restringe il risultato alle righe corrispondenti, indipendentemente da ciò che è digitato nel campo di ricerca semplice.
La scelta AND/OR si applica solo al modo in cui le righe del pannello si combinano tra loro - il risultato complessivo del pannello viene comunque messo in AND con il campo di ricerca semplice e con qualsiasi filtro di base permanente (where()), indipendentemente dalla modalità scelta.