Ragazzi sono un pò nubbone con jquery e vorrei se possibile una mano.
In breve, ho un input con autocompletamento e mi restituisce dopo averselezionato una voce, vari dati separatati da ";", fin qui nessun problema, smisto i dati tra i vari input.
La vera matassa del problema è che prima utilizzavo un select che tramite funzione javascript, lanciava un get ad un file php per recuperare dei dati dal database (onchange event).
Con l'autocompletamento vorrei indurre anche questa funzione in automatico, sfruttando i dati che ottenuti, ma non saprei come far eseguire la funzione in automatico allo script jquery.
Vi posto il codice
questa è la funzione jquery di autocompletamento che funziona perfettamente, quella che voglio fargli fare in più è questa:
il valore che vorrei mandare alla funzione
getState01(selezione_provaId) sarebbe dati[0] quindi getState01(dati[0])
Spero di non essere stato troppo contorto
In breve, ho un input con autocompletamento e mi restituisce dopo averselezionato una voce, vari dati separatati da ";", fin qui nessun problema, smisto i dati tra i vari input.
La vera matassa del problema è che prima utilizzavo un select che tramite funzione javascript, lanciava un get ad un file php per recuperare dei dati dal database (onchange event).
Con l'autocompletamento vorrei indurre anche questa funzione in automatico, sfruttando i dati che ottenuti, ma non saprei come far eseguire la funzione in automatico allo script jquery.
Vi posto il codice
HTML:
$().ready(function(){
$('#tag').autocomplete({
source: 'autocomplete.php',
minLength:2,
change:function(event,ui){
if(!ui.item){
$(this).val('');
$('#tagid').val('');
return false;
}
},
select:function(event,ui){
var dati = (ui.item.id).split(';');
var nome = dati[1].split(' ');
if(typeof nome[2] === 'undefined'){nome[2] = ''};
if(typeof nome[3] === 'undefined'){nome[3] = ''};
if(typeof nome[4] === 'undefined'){nome[4] = ''};
if(typeof nome[5] === 'undefined'){nome[5] = ''};
if(typeof nome[6] === 'undefined'){nome[6] = ''};
$('#tagid').val(dati[0] + (';') + dati[1] + (';') + dati[2] + (';') + dati[3] + (';') + dati[4]);
$('#indirizzo').val(dati[2]);
$('#nome').val(nome[0]);
$('#cognome').val(nome[1] + (' ') + nome[2] + (' ') + nome[3] + (' ') + nome[4] + (' ') + nome[5] + (' ') + nome[6]);
$('#contratto').html('<option value="' + dati[3] + '">' + dati[3] + '</option>');
questa è la funzione jquery di autocompletamento che funziona perfettamente, quella che voglio fargli fare in più è questa:
HTML:
function getXMLHTTP01() { //Funzione che restituisce l'oggetto xml http
var xmlhttp=false;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e) {
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1){
xmlhttp=false;
}
}
}
return xmlhttp;
}
function getState01(selezione_provaId) {
var strURL="scripts/funzioni/funzione_prova.php?selezione_prova="+selezione_provaId;
var req = getXMLHTTP01();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// solo se "OK"
if (req.status == 200) {
document.getElementById('selezione_provadiv').innerHTML=req.responseText;
} else {
alert("Qualche problema usando XMLHTTP:\n" + req.statusText);
}
}
}
req.open("GET", strURL, true);
req.send(null);
}
}
getState01(selezione_provaId) sarebbe dati[0] quindi getState01(dati[0])
Spero di non essere stato troppo contorto