Originariamente inviata da
cavicchiandrea
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à.