In un articolo precedente abbiamo visto come andare a creare dei campi con la funzione di autocompletamento, ma cosa succede nel caso in cui all'interno dello stesso campo dobbiamo andare a posizionare diversi valori ogniuno dei quali deve essere inserito con la funzione di autocompletamento? Normalmente questo non sarebbe possibile, ma tramite una semplice modifica possiamo andare a utilizzare un elenco separato da virgole mantenendo le funzionalità di autocompletamento.
Innanzitutto andiamo a svolgere le medesime operazioni per un campo di autocompletamento standard come indicato in Realizzare un campo autocompletante. Quando andiamo a creare la funzione per la realizzazione dell'elenco, però, faremmo in modo che tutto ciò che è stato inserito prima dell'ultima virgola venga trascurato e venga no utilizzati solamente i caratteri immessi di seguito per la ricerca dei termini. il codice della funzione di autocompletamento multiplo è quello inserito di seguito (in questo caso è stato usato una selezione multipla per gli utenti disponibili):function test_multiple_autocomplete($string_start = '') {
$matches = array();
$string = '';
$alluser = '';
if($string_start != '') {
$nomi = explode(',', $string_start);
$num_user = count($nomi);
$string = ltrim(rtrim($nomi[$num_user - 1]));
for ( $i = 0; $i < $num_user - 1; $i++) {
$alluser .= ltrim(rtrim($nomi[$i])) . ', ';
}
}
if ($string) {
$result = db_query_range("SELECT name FROM {users} WHERE LOWER(name) LIKE LOWER('%s%%')", $string, 0, 10);
while ($user = db_fetch_object($result)) {
$matches[ $alluser . $user->name] = check_plain($user->name);
}
}
print drupal_to_js($matches);
exit();
}Inizialmente si ha la fase di ricerca a cui segue poi una fase di accorpamento di tutti i termini inseriti in modo da essere reinseriti nel caso in cui si abbia la selezione dell'elemento richiesto.
Un esempio lo potete trovare qui di seguito:
Comments
Post new comment