Dins del desenvolupament web, en el javascript de la part client, cal carregar dades en un formulari per editar-les. És aleshores quan entra en joc aquesta funció.
Aquesta funció és relativament senzilla, el primer que fa és netejar els controls del formulari, després fa una crida Ajax a la part servidora, normalment a un ASHX amb el paràmetre "action" amb el valor "data". Això fa que la part servidora faci una crida a la funció LoadData (de la part servidora) i obtingui les dades. Aquestes es serialitzen al ASHX i s'envien al client, on es deserialitzen col·locant els valors corresponents als controls del formulari.
Cal recordar que perque aquesta deserialització funcioni i cada control rebi el valor que li pertoca cal que el control tingui el mateix nom que el camp del JSON. Val més una imatge que mil paraules:
Un cop deserialitzades les dades el formulari s'ha de posar en mode "actualitzar", de tal manera que a l'apretar el botó "Guardar" faci una actualització contra el ASHX corresponent. Com sempre el codi:
function LoadClassificacioData(pPK_Classificacio) {
//Actualització variable global que guarda la clau primària (PK)
evPK_Classificacio = pPK_Classificacio;
//Neteja del formulari
$('#frmDetall :input')
.not(':button, :submit, :reset, :checkbox')
.val('')
.removeAttr('selected');
$("#frmDetall :checkbox").removeAttr('checked');
//Recuperació
$.ajax({
type: "GET",
url: "classificacions.ashx?action=data&PK_Classificacio=" + pPK_Classificacio,
success: function(data, textStatus) {
if (!data.ERROR) {
var config = {};
config.isPHPnaming = false;
config.overwrite = true;
//Deserialització
$('#frmDetall').deserialize(data, config);
//Mode update
ClassificacioUpdate();
}
else {
alert("ERROR: " + data.ERROR);
}
}
});
}
#03/02/2014 11:12 Programació Javascript Autor: Alex Canalda