Form autoriempiente

Steftcom

Nuovo Utente
7 Mag 2010
19
0
0
42
Lugano, Svizzera
Salve, ho una domanda e non so se è la sezione giusta oppure deve andare in Javascript
Io ho un campo select di un form in cui ci posso scrivere anche e man mano che inserisco le lettere mi fa vedere le possibilità associate.
Per esempio nel DB ho il campo nome, nel form ho la tendina che mi fa vedere tutti i nomi, poi per esempio scrivo A mi fa vedere tutti i nomi con la A (Alberto - Antonio - Andrea - ...) poi se continuo a scrivere per esempio An mi fa vedere i corrispondenti (Antonio - Andrea - ...)
Spero di essermi spiegato bene.

Grazie


Stefano
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Hai già realizzato l'applicazione per estrarre i dati? Se è solo un problema di visualizzazione la cosa si potrebbe risolvere con Ajax
 

Steftcom

Nuovo Utente
7 Mag 2010
19
0
0
42
Lugano, Svizzera
Ho qua la query che mi restituisce il nome e l'ID corrispondente, il select è gia pronto, infatti adesso lo devo scorrere tutto ( sono circa 1000 nomi) per selezionare il nome che mi niteressa
 

Steftcom

Nuovo Utente
7 Mag 2010
19
0
0
42
Lugano, Svizzera
Il codice è questo:
PHP:
$query_user = "SELECT id,nome FROM ITE_utenti";
$result_user = mysql_query($query_user,$db);
echo "<select name='for_user'>";
while($row_user = mysql_fetch_array($result_user))
{
	echo "<option value=$row_user[id]>$row_user[nome]</option>";
}
echo "</select>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Scusami, e poi quella select dove viene visualizzata? Perché noi non abbiamo bisogno di codice HTML ma XML, quindi se quel form ti serve dobbiamo per forza creare un'altra pagina che restituisca i dati in maniera differente.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
Ciao
scusate se mi intrometto ma anche io sto cercando qualcosa di simile
Intanto una cosa per alex: a che ti serve sapere dove va la select? Secondo me non ha alcuna importanza (qualche post da qualche parte riceverà il valore).
Mentre, sempre per alex, è interessante l’articolo che hai segnalato, ma c’è un però!!!
È giusto quello che dice, digitando un lettera in campo di testo appaiono i nomi che iniziano per tale lettera.
Ma c’è il però che ho detto: i nomi devo inserirli (manina, manina) in un array del js, mentre quello che vorrei io (e da quanto ho capito vorrebbe steftcom) e che tale array (o qualcosa di simile) venisse generato dinamicamente in funzione del contenuto di campo della tabella (non costretto a scivere i nomi uno a uno nell’arry js e modificarlo ogni volta che aggiungo/tolgo un record (quindi credo che abbia ragione eliox a parlare di ajax).
Steftcom eventualmente mi smentisca, ma credo che voglia una cosa del genere
Se nella tabella (oltre al resto dei campi) ho il campo nome e i vari record contengano in nome i valori:

abate
abbondio
antonio
giuseppe
ecc….

abbia un campo di testo che quando in questi digito a appaia una tendina (select) con

abate
abbondio
antonio

digitando anche b (campo di testo ab)

abate
abbondio

digitando un’alta b (campo di testo abb)

abbondio

se digito una lettera, es. z , e non ci sono nomi che inizino per z la tendina non si apre (o si apra con tutti i nomi)

cliccando sul nome poi trasmetto il valore della select

scusate se mi sono dilungato, ma spero che serva a chiarire e che qualche anima pia posti la soluzione
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
grazie, dalla demo sembrerebbe quello che cerco, ora guardo gli scripts e se non è quello che voglio rimetto come avatar il gatto ruggente:)
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ehm, bene, allora fammi sapere se devo mettere come avatar un cane randagio :D
Comunque ti avverto che c'è bisogno della libreria JSON per farlo funzionare. Se hai PHP5 (e penso proprio di sì) dovrebbe essere già installata. Dai un'occhiata alle funzioni json_encode e json_decode. Altrimenti dovrai scaricare la classe e includerla manualmente nello script.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho php 5.2.3 quindi le lib dovrebbero esserci.
il punto però è che ho scaricato i vari js ma non capisco come far prelevare i dati dalla tabella
in tutti i c'è sempre un esempio qui no.
spero che a forsa di cercare qualcosa riesca a ricavare

p.s.
se rimetto il mio gatto ruggente hai poco da inserire un cane, ben che vada scappa dalla paura:)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
forse ho trovato qualcosa qui
http://maxb.net/blog/2009/09/14/autocomplete-con-jquery/

da quello ch per ora ho capito nella pagina in cui si vuole il menù a tendina (oltre evidentemente caricare i js e css)
si trova i seguente campo di testo (che andra inserito poi ,penso, in un form)

HTML:
<input type="text" name="suggest1" id="suggest1" class="suggest" alt="php/mesi.php" />
sotto cui (digitando un carattere si apre la tendina)
il tutto viene gesito per il prelevo dei dati da alt="php/mesi.php" che non è altro che un semplicissimo script

PHP:
<?php
$q = strtolower($_GET["q"]);
if (!$q) return;
$items = array(
	'gennaio',
	'febbraio',
	'marzo',
	'aprile',
	'maggio',
	'giugno',
	'luglio',
	'agosto',
	'settembre',
	'ottobre',
	'novembre',
	'dicembre'
);

foreach ($items as $value) {
    if (strpos(strtolower($value), $q) !== false) {
        echo "$value\n";
    }
}
?>
ora sostituendo a $item =array(eccc...
PHP:
<?php
$q = strtolower($_GET["q"]);
if (!$q) return;
//valori di connessione
//select alla tabella con il campo che interessa, es. nome

while($row=mysql_fetch_array($query){
	$item[]=$row['nome'];
}

foreach ($items as $value) {
    if (strpos(strtolower($value), $q) !== false) {
        echo "$value\n";
    }
}
?>
il gioco dovrebbe essere fatto
se secondo voi sono fuori strada avvisatemi

p.s.
per ora trova i nomi che "contengono" il carattere digitato dovrò (ahime) cercare tra i vari js in modo che trovi i nomi che "iniziano" col carattere digitato
 

Steftcom

Nuovo Utente
7 Mag 2010
19
0
0
42
Lugano, Svizzera
Ciao

è esattamente come dice borgo italia, la lista è in continua modifica pertanto modificare sempre l'array è un po' un lavoraccio.
Adesso provo lo script e poi vedo

Grazie
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
tu però i valori li hai in un db, l'array dovrebbe modificarsi automaticamente
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao eliox (ecc...)
si ho provato, si modifica in funzione dei dati in tabella.
poi ho provato a fare delle modifiche ma non sto cavando un ragno dal classico buco.
inserendo (es) a mi restituisce

abbondio
artemisia
bulanzone
zuzzurra

cioè contiene a
non sono riuscito a capire (maledetto js) come a ricavare solo i valori che INIZIANO per a
 

satifal

Utente Attivo
25 Set 2008
522
13
0
Roma
Per ottenere ciò che vuoi non devi modificare il js ma lo script PHP. Sostituisci il foreach con:

PHP:
foreach ($items as $value) {
    if (substr(strtolower($value), 0, strlen($q)) == $q) {
        echo "$value\n";
    }
}
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao x stefticom
scusa ma mi ero dimenticato di te,
la query la faccio qui

PHP:
<?php 
$q = strtolower($_GET["q"]); 
if (!$q) return; 
//valori di connessione 
$query=mysql_query("SELECT * FROM mia_tabella");//se serve WHERE, ORDER, LIMIT

while($row=mysql_fetch_array($query){ 
    $item[]=$row['nome']; 
} 

foreach ($items as $value) { 
    if (strpos(strtolower($value), $q) !== false) { 
        echo "$value\n"; 
    } 
} 
?>
per fare in modo che venga "INIZIA PER" quarda quello che ha scritto satifal, pardon SANtifal:)

dimenticavo: al posto di * è meglio mettere il nome del campo che interessa
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
S passare un valore da un form a un file .php con metodo post PHP 4
K Form che manda dati doppi PHP 1
K Problema form update PHP 2
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
K form Inserimento record mysql PHP 2
I Form con selettore HTML e CSS 0
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
D Form contatti non funzionante HTML e CSS 0
A Stampare dati da form PHP 8
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
I Form HTML e CSS 17
otto9due $_FILE non passa i dati dal form PHP 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
felino Form action costum e parametri in queryString WordPress 1
M Come recuperare molteplici input form PHP 1
M Collegamento tra form html e script php PHP 4
L form immagini per il database PHP 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
L inserimento form dati multipli ? PHP 0
L Problemi form Pagina php HTML e CSS 3
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
D Devo far funzionare un form di contatti PHP 4
B form gestione input PHP 2
V PHP form intersecate PHP 0
8 Javascript - PDF Form Javascript 0
J Form inserimento dati in database Ajax 1
E Gestione profilo utente tramite Form PHP 3
R [C#] Form principale si blocca mentre un altro Thread lavora .NET Framework 0
M Problema con controllo form in real time jQuery 6
D Form validazione Javascript 2
R form recovery pass PHP 0
V Symfony e i form PHP 3
M form con checkbox PHP 8
S come aggiustare un form di contatto? HTML e CSS 3
F query e form con select multipla PHP 17
MarcoGrazia Verifica di una stringa o di un nome proveniente da form Snippet PHP 0
A Inserimento dati nel database tramite form + altre operazioni PHP 18
websilvia Contact form using Bootstrap 3.3.4 PHP 8
Alex_70 Button non funziona nella form PHP 2
C Form email php su pagina index.html? PHP 21
W Rinominare Documenti Con Form Asp Classic ASP 9
S Invio email da form PHP 8
L form multipla php sql,errore in inserimento MySQL 0
L inviare i dati di un form ad un database PHP 6
L Collegare un form html ad un database access Javascript 2

Discussioni simili