Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Rendere contenuto di una label in parte invisibile

    Salve a tutti.
    Ho un problema riguardante un input text a cui implemento un Autocompletamento. Nella mia jsp ho qualcosa del genere:
    codice:
    <div class="search-container">
            <div class="ui-widget">
                    Search:<input type="text" id="utenteSearch" name="utenteSearch" size="35" class="utenteSearch"><img src="img/addContact.png" onclick="AggiungiContatto()" width="35" height="35">Cliccare sull'icona per aggiungere come contatto
            </div>
    </div>
    popolo questa input in base ai caratteri che vengono immessi lato client attraverso una chiamata Ajax ad una Servlet che "pesca" da un db sql. La chiamata è la seguente:
    codice:
    <script type='text/javascript'>
    $(document).ready(function() {
        $(function() {
                $("#utenteSearch").autocomplete({     
                source : function(request, response) {
                $.ajax({
                	url:  'ModifyProfileUser',
            		type: 'POST',
            		dataType:'JSON',
                    data : { users : request.term, action:"searchUser" },
                        
                    success : function(data) {	
                    	//response(data);	
                    	response( $.map( data, function( item ) {
                    	    return {
                    	        label: item.nome +" "+ item.cognome +  item.id   
                    	    }
                    	}));
                        }
                });
        }
    });
    });
    });
    </script>
    Il codice è funzionante. Vorrei però non rendere visibile l'id di "item", ma allo stesso tempo averlo per una successiva azione da implementare. Qualcuno sa darmi qualche consiglio?Ringrazio già ora chi si interesserà.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    O imposti una variabile globale nel response oppure metti un campo nascosto (hidden) nel markup dell'html e lo valorizzi con item.id
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    O imposti una variabile globale nel response oppure metti un campo nascosto (hidden) nel markup dell'html e lo valorizzi con item.id
    Grazie per il consiglio! Ho scelto di seguire la seconda strada per cui:
    codice:
    <div class="search-container">
            <div class="ui-widget">
                    Search:<input type="text" id="utenteSearch" name="utenteSearch" size="35" class="utenteSearch"><img src="img/addContact.png" onclick="AggiungiContatto()" width="35" height="35">Cliccare sull'icona per aggiungere come contatto
                    <input type="text" id="idUser" style="visibility:hidden;">
            </div>
    e poi:
    codice:
    $(document).ready(function() {
        $(function() {
                $("#utenteSearch").autocomplete({     
                source : function(request, response) {
                $.ajax({
                    url:  'ModifyProfileUser',
                    type: 'POST',
                    dataType:'JSON',
                    data : { users : request.term, action:"searchUser" },
                        
                    success : function(data) {    
                        //response(data);    
                        response( $.map( data, function( item ) {
                            document.getElementById('idUser').value=item.id;
                            return {
                                label: item.nome +" "+ item.cognome
                                
                            }
                            
                        }));
                        }
                });
        }
    });
    });
    });
    Ma nella response come faccio a valorizzare l'input text con l'id della scelta fatta dall'autocomplete? Mi spiego meglio, se ora volessi acquisire un certo id mediante:
    codice:
    <script type='text/javascript'>
    function AggiungiContatto(){
        var user=document.getElementById('utenteSearch').value;
        var iduser=document.getElementById('idUser').value;
        
        if(user==null || user==""){
            alert("Inserire almeno una lettera per la ricerca!")    
        }
        else{
            $.ajax({
                url:  'ModifyProfileUser',
                type: 'POST',
                dataType:'JSON',
                data : { userToAdd : iduser +" "+ user, action:"addUser" },
                success : function(data) {
                            response(data);      
                }
            });
        }
    };
    </script>
    L' "iduser" che recupero è sempre l'ultimo della map, come acquisire quello consequenziale alla scelta dell'autocompletamento? Spero di essere stato chiaro. Grazie per la disponibilità.
    Ultima modifica di Petermessy; 28-04-2016 a 17:37

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Iduser è univoco? Item. Cos'è?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Iduser è univoco? Item. Cos'è?
    E' un utente. Praticamente sto gestendo una funzione "aggiungi contatto" tramite questo autocompletamento. Per rispondere alla tua domanda si che lo è ( "univoco" ) Iduser. Per me dovrei gestire meglio l'automplete, cioè: quando digito per es. "p" nella search ho tutte le utenze che per nome iniziano con "p", solo quando si sceglie tra una di queste posso compilare il campo hidden che mi hai consigliato di utilizzare. Bene a me logicamente manca questa parte o no? Non vedo altre spiegazioni.

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.