Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536

    doppio completamento con ajax

    Ciao,
    Ho realizzato l'autocompletamento per il campo descrizione nella pagina sotto.
    In pratica non ho fatto altro che adattare il codice che ho trovato
    in questo sito (non ho cambaito nemmeno il nome delle funzioni):

    http://www.dhtmlgoodies.com/index.ht...x-dynamic-list


    questa è la mia pagina in html:

    codice:
    <html>
    <head>
    <title>Form dati</title>
    <style type="text/css">
    	/* Big box with list of options */
    	#ajax_listOfOptions{
    		position:absolute;	/* Never change this one */
    		width:175px;	/* Width of box */
    		height:250px;	/* Height of box */
    		overflow:auto;	/* Scrolling features */
    		border:1px solid #317082;	/* Dark green border */
    		background-color:#FFF;	/* White background color */
    		text-align:left;
    		font-size:0.9em;
    		z-index:100;
    	}
    	#ajax_listOfOptions div{	/* General rule for both .optionDiv and .optionDivSelected */
    		margin:1px;		
    		padding:1px;
    		cursor:pointer;
    		font-size:0.9em;
    	}
    	#ajax_listOfOptions .optionDiv{	/* Div for each item in list */
    		
    	}
    	#ajax_listOfOptions .optionDivSelected{ /* Selected item in the list */
    		background-color:#317082;
    		color:#FFF;
    	}
    	#ajax_listOfOptions_iframe{
    		background-color:#F00;
    		position:absolute;
    		z-index:5;
    	}
    	
    	form{
    		display:inline;
    	}
    	
    	</style>
    	<script type="text/javascript" src="js/ajax.js"></script>
    	<script type="text/javascript" src="js/ajax-dynamic-list.js"></script>
    <SCRIPT LANGUAGE='JavaScript'>
    <!--
    function validate_form()
    {
    
        if (document.art.codice.value==document.art.codice.defaultValue ||
        document.art.codice.value.indexOf(' ',0)==0)
        {
            alert('\nNessun codice inserito.')
            document.art.codice.select()
            document.art.codice.focus()
            return false
        }
          if ((isNaN(document.art.codice.value)) ||  document.art.codice.value.indexOf('-',0)==0 ||  document.art.codice.value.indexOf('+',0)==0) {
       alert("Codice non valido.");
       document.art.codice.value = "";
       document.art.codice.focus();
       return false;
            }
    
        if (document.art.descrizione.value==document.art.descrizione.defaultValue ||
        document.art.descrizione.value.indexOf(' ',0)==0)
        {
            alert('\nNessuna descrizione inserita.')
            document.art.descrizione.select()
            document.art.descrizione.focus()
            return false
        }
    
        if (document.art.quantita.value==document.art.quantita.defaultValue ||
        document.art.quantita.value.indexOf(' ',0)==0)
        {
            alert('\nNessuna quantità inserita.')
            document.art.quantita.select()
            document.art.quantita.focus()
            return false
        }
    
        if (document.art.quantita.value.indexOf(',') >= 0){
       alert("Per i decimali utilizzare il punto, es: 4 chili e mezzo= 4.5");
       document.art.quantita.value = "";
       document.art.quantita.focus();
       return false;
            }
    
         if ((isNaN(document.art.quantita.value))|| document.art.quantita.value.indexOf('-',0)==0 ||  document.art.quantita.value.indexOf('+',0)==0) {
       alert("Quantità non valida.");
       document.art.quantita.value = "";
       document.art.quantita.focus();
       return false;
            }
    
    
    
    
        if (document.art.prezzo.value==document.art.prezzo.defaultValue ||
        document.art.prezzo.value.indexOf(' ',0)==0)
        {
            alert('\nNessun prezzo inserito.')
            document.art.prezzo.select()
            document.art.prezzo.focus()
            return false
        }
    
         if (document.art.prezzo.value.indexOf(',') >= 0){
       alert("Per i decimali utilizzare il punto, es: 3 euro e 55 cent = 3.55");
       document.art.prezzo.value = "";
       document.art.prezzo.focus();
       return false;
    }
    
    
         if ((isNaN(document.art.prezzo.value))|| document.art.prezzo.value.indexOf('-',0)==0 ||  document.art.prezzo.value.indexOf('+',0)==0) {
       alert("Prezzo non valido.");
       document.art.prezzo.value = "";
       document.art.prezzo.focus();
       return false;
            }
    
    }
    //----------------------------------------
    // -->
    </SCRIPT>
    </head>
    
    <body bgcolor="#DAB88B" onload="document.art.codice.focus();" >
    <TABLE border=0 width=100% cellpadding=3>
    <tr>
    <td width=100% colspan=2>
    <p align=center>Inserisci Articoli
    <form method=POST action="fatt1.php" target= "fatt1" name = "art" onSubmit="return validate_form()">
    </td>
    </tr>
    <tr>
    <td width=18%>Codice</td>
    <td width=82%><input type=text name="codice" size=10></td>
    </tr>
    <tr>
    <td width=18%>Descrizione</td>
    <td width=72%><input type="text" name="descrizione" value="" onkeyup="ajax_showOptions(this,'getCountriesByLetters',event)">
    </td>
    </tr>
    <tr>
    <td width=18%>[b]Quantità</td>
    <td width=82%><input type=text name="quantita"  size=10></td>
    </tr>
    <tr>
    <td width=18%>[b]Prezzo Un.</td>
    <td width=82%><input type=text name="prezzo"  size=10></td>
    </tr>
    <tr>
    <tr>
    <td width=18%>[b]IVA</td>
    <td width=82%><select size="1" name="iva"  size=10>
      <option> 4</option>
      <option> 10</option>
      </select></td>
    </tr>
    <tr>
    <td width=18%>[b]<input type="submit" name="invia" value="Inserisci"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    ovviamente ho creato una tabella prodotti nel db con i campi id, codice, descrizione. Per il resto
    ho usato gli stessi file di riferimento in js e php.

    Il codice funziona, e il campo descrizione si autocompleta del nome del prodotto relativamente
    alle lettere che tasto.
    Vorrei adesso, se possibile, implementare il form.
    In pratica vorrei fare in modo che se inserisco il codice del prodotto automaticamente sia inserito anche il nome del prodotto ad esso associato nel campo descrizione e viceversa
    se inserisco il nome del prodotto nel campo descrizione (autocompletato con ajax) sia
    inserito nel campo codice il codice relativo.

    Se non è possibile o è troppo complicata la cosa vorrei almeno ottenere quello che
    è possibile vedere in questa pagina:

    http://demo.script.aculo.us/ajax/aut...ter_customized

    dove nel campo "to" inserendo le iniziali del nome "a" ad esempio viene richiamato nel menu a discesa tra gli altri con la stessa iniziale il nome "ada noel" e sotto in grigietto il suo indirizzo email che non viene inserito nel campo ma visualizzato come suggerimento.
    Beh, se non è possibile realizzare la mia prima richiesta vorrei almeno riuscire a fare questo:
    Visualizzare il codice come "suggerimento".
    Il codice della pagina sembra essere in asp (oltre a js credo) ma io non lo conosco e dovrei usare il php.
    Potete aiutarmi?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    rinuncio?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.