questa funzione dovrebbe comporre la stringa dei parametri da inviare con ajax
codice:
//-----------------------------------------------------------------
//crea la stringa dei parametri da utilizzare con ajax
//-----------------------------------------------------------------
function crea_parametri(form)
{
if(typeof(form) == "undefined")
return;
else if(typeof(form) == "string")
{
var f = document.getElementById(form);
if(!f) return;
}
else if(typeof(form) == "object")
var f = form;
var elements = f.elements;
if(!elements) return;
var n = elements.length;
var s = [];
for(var i = 0; i < n; i++)
{
var element = elements[i];
var name = element.name;
if(name != "")
{
var type = element.type;
var value = encodeURIComponent(element.value);
if(type == "text" || type == "file" || type == "password" )
{
s.push(name + "=" + value);
}
else if(type == "hidden")
{
//non considero gli elementi riservati quali:
//__EVENTTARGET, __EVENTARGUMENT, __VIEWSTATE, __EVENTVALIDATION
if(name.indexOf("__", 0) == -1) s.push(name + "=" + value);
}
else if(type == "checkbox" || type == "radio" )
{
if(element.checked)
{
s.push(name + "=" + value);
}
}
else if(type == "textarea")
{
s.push(name + "=" + value);
}
else if(type == "select-one" || type == "select-multiple")
{
var c = options_value_selezionati_join(element) + "";
if(c != "") s.push(name + "=" + c);
}
}
}
s = s.join("&");
return s;
//------------------------------------------------------------
//restituisce gli elementi value selezionati da una lista
//separati da virgola
//------------------------------------------------------------
function options_value_selezionati_join(lista)
{
var s = "";
for(var i = 0; i < lista.options.length; i++)
{
if(lista.options[i].selected) s += "," + lista.options[i].value;
}
return s.substr(1);
}
}
e si usa come in questo frammento:
codice:
function regioni_onchange(t)
{
var parametri = crea_parametri(document.forms[0]);
ajax("Regioni_province_comuni.aspx?ajax_comando=1", onload, parametri);
**********