Salve a tutti. Ho creato una tabella dinamica javascript dove premendo un bottone vengono aggiunte tre righe per volta.
Ogni riga contiene una select. Il problema è che le righe vengono create, ma viene caricata solo la select dell'ultima riga.
Le select vengono create mediante la stessa funzione che richiama un codice esterno php (uso ajax). Come ho potuto verificare, la funzione'mostraInfo(par1, par2, par3)' viene richiamata in tutti i casi, ma soltanto nel caso della terza riga effettua il collegamento al documento preleva_dati.php.
Il fatto strano è che se metto un semplice alert dopo aver creato ogni riga, funziona tutto alla perfezione, poichè vengono caricate le tre righe con le tre select.
La prima funzione richiamata è add_member(id_table, cod_gruppo, inizio)
codice:
<script language="javascript">
var var_fine;
var id_indice;
function mostraInfo(cod_gruppo, inizio, str)
{
var_fine=GetXmlHttpObject();
if (var_fine==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="preleva_dati.php";
url=url+"?cod_gruppo="+cod_gruppo;
url=url+"&inizio="+inizio;
url=url+"&str="+str;
var_fine.onreadystatechange=stateChanged;
var_fine.open("GET",url,true);
var_fine.send(null);
}
function stateChanged()
{
if (var_fine.readyState==4)
{
document.getElementById(id_indice).innerHTML=var_fine.responseText;
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{ // code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{ // code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
var index = 0;
function add_member(id_table, cod_gruppo, inizio)
{
var tbody = document.getElementById
(id_table).getElementsByTagName("TBODY")[0];
var row = document.createElement("TR");
//**********PRIMA RIGA
var td1 = document.createElement("TH");
td1.appendChild(document.createTextNode("Seleziona componente"));
row.appendChild(td1);
var td2 = document.createElement("TD");
var cellText = document.createElement("div");
index++;
id_indice = "dati"+index;
cellText.setAttribute("id", id_indice);
td2.appendChild (cellText);
row.appendChild(td2);
mostraInfo(cod_gruppo, inizio, "elenco");
tbody.appendChild(row);
alert("questo alert permette di far funzionare la riga"); //se tolgo questo alert, non viene caricata la select
//**********SECONDA RIGA
row = document.createElement("TR");
td1 = document.createElement("TH");
td1.appendChild(document.createTextNode("Anno inizio collaborazione"));
row.appendChild(td1);
td2 = document.createElement("TD");
cellText = document.createElement("div");
index++;
id_indice = "dati"+index;
cellText.setAttribute("id", id_indice);
td2.appendChild (cellText);
row.appendChild(td2);
mostraInfo(cod_gruppo, inizio, "inizio");
tbody.appendChild(row);
alert("questo alert permette di far funzionare la riga"); //se tolgo questo alert, non viene caricata la select della seconda riga
//**********TERZA RIGA
row = document.createElement("TR");
td1 = document.createElement("TH");
td1.appendChild(document.createTextNode("Anno inizio collaborazione"));
row.appendChild(td1);
td2 = document.createElement("TD");
cellText = document.createElement("div");
index++;
id_indice = "dati"+index;
cellText.setAttribute("id", id_indice);
td2.appendChild (cellText);
row.appendChild(td2);
mostraInfo(cod_gruppo, inizio, "fine");
tbody.appendChild(row);
}
</script>