Niveau
..........
En rapport...

Enregistrer un formulaire

Cette fonction vous permettra d'enregistrer un formulaire avec toute les informations rentrées par l'utilisateur à un instant T

javascript
Array.prototype.in_array = function(valeur) {
	for (var i in this) { if (this[i] == valeur) return i;}
	return -1;
}
function fixForm(myForm,disableMe) {
	var radioName= new Array();
	//gestion des inputs	
	allInput=myForm.getElementsByTagName('input');
	for (var i=0;i<allInput.length;i++) {
		//pour les champs text
		if (allInput[i].type=="text") {
			allInput[i].setAttribute("value",allInput[i].value);
		}
		//pour les checkbox
		else if (allInput[i].type=="checkbox" && allInput[i].checked==true) {
			allInput[i].setAttribute("checked",true);
		}
		//pour les radios
		else if (allInput[i].type=="radio" && radioName.in_array(allInput[i].name)==-1) {
			//on enregistre dans le tableau radioName les différents nom des boutons radio
			radioName.push(allInput[i].name);
		}
		if (disableMe==true) {
			if (allInput[i].name!="resultForm") {//le champ hidden ne doit pas etre disable
				allInput[i].setAttribute("disabled",true);
			}
		}
	}
	//on gère les radiobuttons selon les nom enregistré dans radioName
	for (var i=0;i<radioName.length;i++) {
//getElementsByName ne fonctionne pas sur les formulaire il faut l'appliquer au document entier		
thisRadio=document.getElementsByName(radioName[i]);
		for (var j=0;j<thisRadio.length;j++) {
			if (thisRadio[j].checked==true) {
				thisRadio[j].setAttribute("checked",true);
			}
			else {
				thisRadio[j].removeAttribute("checked");
			}
		}
	}
	//gestion des select
	allSelect=myForm.getElementsByTagName('select');
	for (var i=0;i<allSelect.length;i++) {
		for (j=0;j<allSelect[i].options.length;j++) {
			allSelect[i].options[j].setAttribute("selected",false);//on remet toutes les options a false
		}
		//on met l'attribut selected a true pour l'option selectionnée
		allSelect[i].options[allSelect[i].selectedIndex].setAttribute("selected",true);
		if (disableMe==true) {
			allSelect[i].setAttribute("disabled",true);
		}
	}
	//pour les textareas
	allArea=myForm.getElementsByTagName('textarea');
	for (var i=0;i<allArea.length;i++) {
		allArea[i].innerHTML=allArea[i].value;
		if (disableMe==true) {
			allArea[i].setAttribute("disabled",true);
		}
	}
	return (myForm.innerHTML);
}

MyForm est un objet html de type formulaire.

Exemple d'utilisation:

javascript
function launchForm(myForm) {
var resultForm=fixForm(myForm,true);
myForm.resultForm.value=resultForm;
myForm.submit();
}

La fonction launchForm enregistre dans la variable resultForm le formulaire myForm.
True signifie que les champ de formulaire seront rendu inactif (disabled).
myForm.resultForm.value=resultForm permet de remplir un champ caché nomé resultForm. myForm.submit() post le formulaire.


17/08/2007 14:07 -

ManiT4c
Gérant et chef de projet de l'agence web Op'art, je suis également webmaster freelance. Retrouvez moi également sur twitter.