eccoci qui
dunque, come detto devi fare un misto di php e js, comincio con il postarti come ho fatto io, poi vedi te che strada seguire...
Io ho fatto innanzitutto un campo di testo con accanto un div
ti posto anche il css del layer:codice:<input name="artName" type="text" id="artName" onKeyUp="updateList( this.form, this );" size="15" onKeyPress="javascript:visibile();"> <div id="mio_layer" style="display:none; "></div>
codice:<style> #mio_layer{ max-height:95px; height:expression(this.scrollHeight > 95? "95px" : "auto"); position:absolute; top:220px; overflow:auto; width:100px; background-color:#F4F4F4; } </style>
poi questo è l js che devi mettere nell'head del tuo html:
io ti ho copiato il mio pari pari, naturalmente poi dovrai cambiare i nomi dei campi e del form con quelli che hai tu (ricordati di dare ad ogni elemento un id, perché come vedi ne js accedo agli elementi tramite il getElementById)
codice:<script type="text/javascript" language="JavaScript"> function updateList( __hForm, __hArtName ){ var itemFound = 0; var artToSearch = __hArtName.value; var artListFound = ""; for ( var i=0; i<artList.length; i++ ){ if ( artToSearch == artList[i].substring( 0, artToSearch.length) ) { artListFound += "<a href=\"#\" onClick=\"selcopy('" + artList[i] + "'); setTimeOut(sendForm(), 2500);\">" + artList[i] + "</a> "; itemFound++; } } if ( itemFound ) artListFound = artListFound; else artListFound = "Nessun articolo trovato."; document.getElementById("mio_layer").innerHTML = artListFound; } function selcopy(valore){ document.getElementById("artName").value = valore; } function visibile(){ document.getElementById("mio_layer").style.display=""; } function sendForm(){ document.getElementById("mio_layer").style.display="none"; document.getElementById("form").submit(); } </script>
infine c'è la parte in cui dobbiao creare l'array js da php che passeremo poi in pasto alle funzioni che sono sopra:
codice:$sql_1="qui la tua query"; $res_1 = @mysql_query($sql_1); $row_1 = @mysql_fetch_assoc($res_1); echo "<script>var artList = new Array("; while($row = @mysql_fetch_assoc($res_1)){ echo "'".$row["nomecolonna"]."',"; } echo "''"; echo ");</script>";
poi io ho fatto in modo che selezionando un elemento dalla lista che mi si presentava questo valore andasse direttamente nella mia casella di testo e che il form venisse processato...questo se vuoi lo puoi tranquillamente omettere.
Penso di averti detto tutto! Buon lavoro!![]()


Rispondi quotando