Ok, avete ragione. Posto il codice, sperando che non sia troppo intrecciato:
Questa è una parte di funzione che crea i 2 autocomplete:
codice:
$('#dialog').text('').append('<label>Property</label><input id="property0" type="text" name="property" onload="loadPropertyData()" onkeypress="loadPropertyData()"/> <label>Object:</label><input id="object0" type="text" onkeypress="loadObjectData()"/> <input type="button" onclick="addNewTriple()" value="+"/>');
$('#dialog').dialog({
buttons: {
"Confirm!": function(){
//Codice per inserire rdfa
switchBaseDiv('annotate');
},
"<- Back to main": function(){switchBaseDiv('base');
}
}
});
}
Qui invece ci sono le funzioni che tramite ajax ritornano i dati:
loadPropertyData()
codice:
function loadPropertyData({
var ajaxCache = {};
$("#property").autocomplete({
source: function(request,response) {
var cachedTerm=request.term.toLowerCase();
if (ajaxCache[cachedTerm]!=undefined) {
response($.map(ajaxCache[cachedTerm], function(item) {
return {
label:item.value,
value:item.value
}
}));
}
else {
$.ajax({
url:"getProperties.php",
dataType:"json",
data:{
q: request.term
},
success:function(data) {
ajaxCache[cachedTerm]=data;
response($.map(data,function(data){
return {
value:data.split(',')
}
}));
}
});
}
},
minLength: 1,
select:function(event, ui){
this.close
},
}
);
}
e
loadObjectsData()
codice:
function loadObjectData({
var ajaxCache = {};
$("#object").autocomplete({
source: function(request,response) {
var cachedTerm=request.term.toLowerCase();
if (ajaxCache[cachedTerm]!=undefined) {
response($.map(ajaxCache[cachedTerm], function(item) {
return {
label:item.value,
value:item.value
}
}));
}
else {
$.ajax({
url:"getObjects.php",
dataType:"json",
data:{
q: request.term
},
success:function(data) {
ajaxCache[cachedTerm]=data;
response($.map(data,function(data){
return {
value:data.split(',')
}
}));
}
});
}
},
minLength: 1,
select:function(event, ui){
this.close
},
}
);
}
Le 2 funzioni sono praticamente uguali ma prendono dati da 2 pagine php diverse.
Volevo solo far notare che il codice l'ho preso da un sito e poi l'ho adattato alle mie esigenze, ma il malfunzionamento è iniziato prima delle modifiche, altrimenti sarei stato capace di ritornare indietro, cosa che invece mi è stata impossibile.
Grazie