begin process at 2012 05 29 06:56:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Controle de saisie (boucle)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Controle de saisie (boucle)

vendredi 24 décembre 2010 à 09:48:14 | Controle de saisie (boucle)

jagogordonne

Bonjour à tous sur mon application je voudrais rajouter un controle de saisie de l'utilisateur. Il ne faudrait pas qu'il puisse saisir 2 fois le meme numéro chose simple mais là je beug un petit coup de pouce svp ...

Voilà ma fonction qui marche très bien ;)=>
Code Javascript :
function Volume_total() {
		var nb_arbre = document.getElementById('nombre_arbre_prerempli').value;
		var i = 0;
		var total = 0;
		var compt = 0;
		while (i != nb_arbre) {
			var arbre = document.getElementById('menu'+i+'3').value;
			if (arbre!="") {
				test= function () {
				sucrer_espaces(arbre); }
				total = total+parseFloat(arbre);
				compt++;
			}
				i++;
		}
		total=(total.toFixed(3));
		document.getElementById('volume_reel_prerempli').value=total;
		alert ("Vous avez abattu "+compt+" arbre");
		document.getElementById('arbre_abattu_prerempli').value=compt;
	}

Et je voudrais rajouter un code qui stocks tous mes num_arbre afin de pouvoir faire mes comparaisons. J'ai commencer un bout de code je le post mais je sents que je vais droit dans le mur ;)
Code Javascript :
function Volume_total() {
		var nb_arbre = document.getElementById('nombre_arbre_prerempli').value;
		var i = 0;
		var total = 0;
		var compt = 0;
		var z = 0;
		for (var z = 0; z < nb_arbre; z++) {
			var "num_arbre"+z = document.getElementById('menu'+i+'0').value;
			var "num_arbre_stocké"+z = "num_arbre"+z;
			//ici je pensais faire une deuxième boucle pour mes comparaisons ...
		}
		while (i != nb_arbre) {
			var arbre = document.getElementById('menu'+i+'3').value;
			if (arbre!="") {
				test= function () {
				sucrer_espaces(arbre); }
				total = total+parseFloat(arbre);
				compt++;
			}
				i++;
		}
		total=(total.toFixed(3));
		document.getElementById('volume_reel_prerempli').value=total;
		alert ("Vous avez abattu "+compt+" arbre");
		document.getElementById('arbre_abattu_prerempli').value=compt;
	}

Merci
vendredi 24 décembre 2010 à 11:43:33 | Re : Controle de saisie (boucle)

PetoleTeam

Membre Club
Bonjour,
je ne saisi pas trop le soucis il suffit de regarder si l'arbre saisie fait déjà partie de la liste, qu'il faut donc mettre en place.

;O)
vendredi 24 décembre 2010 à 11:49:52 | Re : Controle de saisie (boucle)

jagogordonne

Bonjour PetolTeam, et merci oui je cherche à lister tout mes arbres (saisie par l'utilisateur) et ensuite les comparer pour savoir si j'ai des doublons ... Et si c'est le cas mettre une petite alerte avec le numéro d'arbre.
vendredi 24 décembre 2010 à 13:05:57 | Re : Controle de saisie (boucle)

PetoleTeam

Membre Club
un petit exemple, à adapter bien sur
Code Javascript :
<html>
<head>
<title>[PetoleTeam]Verif doublon</title>
<style type="text/css">
</style>
<script type="text/javascript">
var Liste = [];
//---------------
function fctAdd(){
  //-- Initialisation
  var oText = document.getElementById( 'I_SAISIE');
  var szTmp = oText.value;
  var nb = Liste.length;
  //-- parcours tous les elements de Liste
  for( var i =0 ; i < nb; i++){
    //-- existe deja ?
    if( szTmp == Liste[i]){
      //-- OUI on previens
      alert('ERREUR\n[' + szTmp + '] est déjà dans la liste');
      //-- on quite la fonction
      return( false);
    }
  }
  //-- on ajoute
  Liste[nb] = szTmp;
  //-- vide le champ
  oText.value = "";
  //-- remets le focus
  oText.focus();
}
</script>
</head>
<body>
<input id="I_SAISIE" type="text">
<button onclick="fctAdd();">Add</button>
<br><button onclick="  alert( Liste);">Voir a liste</button>
</body>
</html>

au passage
Code Javascript :
var "num_arbre"+z = document.getElementById('menu'+i+'0').value;
var "num_arbre_stocké"+z = "num_arbre"+z;
la syntaxe est illégale


;O)
vendredi 31 décembre 2010 à 15:02:05 | Re : Controle de saisie (boucle)

jagogordonne

Bonjour PetolTeam, désolé du retard mais avec toutes ces fêtes j'ai pas eu trop le temps. Je suis sur le problème actuellement mais je ne vois pas comment créer ma liste ... car comme tu as pu le voir dans mon précédent post mes saisies je les exploites de cette façon :
Code Javascript :
num_arbre=document.getElementById('menu'+i+'1').value;

le "1" correspond à la colonne de mon tableau et "i" c'est la ligne ;) et il y a autant de i qu'il y a d'arbre, je possède ce chiffre grace a cette variable
Code Javascript :
var nb_arbre = document.getElementById('nombre_arbre_prerempli').value;

Ensuite au sujet de ta fonction super et merci encore mais quelques trucs m'échappent par exemple pourquoi le "var Liste = [];" n'est pas dans la fonction ? Je pense que c'est justement pour ne pas faire un RAZ de la liste ... Je te montre ou j'en suis mais comme je t'ai dit je ne comprend pas comment construire la liste malgré les commentaires ...
Code Javascript :
var Liste = [];
		//---------------
	function fctAdd(){
	  //-- Initialisation
	  //var oText = document.getElementById( 'I_SAISIE');
	  
	  var nb = document.getElementById('nombre_arbre_prerempli').value;
	  
	  //-- parcours tous les elements de Liste
	  for( var i =0 ; i < nb; i++){
			var oText document.getElementById('menu'+i+'1').value;
			var szTmp = oText.value;
			//-- existe deja ?
				if( szTmp == Liste[i]){
				  //-- OUI on previens
				  alert('ERREUR\n[' + szTmp + '] est déjà dans la liste');
				  //-- on quite la fonction
				  return( false);
				}
		}
	  //-- on ajoute
	  Liste[nb] = szTmp;
	  //-- vide le champ
	  oText.value = "";
	  //-- remets le focus
	  oText.focus();
	}


vendredi 31 décembre 2010 à 19:50:51 | Re : Controle de saisie (boucle)

PetoleTeam

Membre Club
Bonjour,
on voit cela l'année prochaine si cela ne déranges pas, bubulles obligent
Bon réveillon °O°!
|O°)
lundi 3 janvier 2011 à 19:15:53 | Re : Controle de saisie (boucle)

PetoleTeam

Membre Club
Bonjour,
il y a effectivement 2 manières, au moins de tester l'existant.
1/ à chaque saisie on parcours les lignes ajoutées et l'on vérifie l'existant
2/ à chaque saisie on parcours une liste mise à jour au fil de l'eau et l'on vérifie l'existant

c'est cette 2ème méthodes que je t'ai mis, elle présente l'avantage d'être plus simple et plus légère à mettre en oeuvre et plus rapide que le parcours de la TABLE créer.

Il faut effectivement que la liste soit déclarée en variable globale pour ne pas être perdue entre chaque accès à la fonction.

Le principe de construction est le suivant
- au début la liste est vide
- à la 1st saisie on ajoute la saisie dans la liste, la vérification se fait mais la saisie n'existera forcément pas
- aux saisies suivantes si la valeur est déjà dans la liste on ne fait rien, sinon on crée la nouvelle ligne dans la table

Dans l'exemple que je t'ai mis cela pourrait se traduire par
Code Javascript :
var Liste = [];
//---------------
function fctAdd(){
  //-- Initialisation
  var oText = document.getElementById( 'I_SAISIE');
  var szTmp = oText.value;
  var nb = Liste.length;
  //-- parcours tous les elements de Liste
  for( var i =0 ; i < nb; i++){
    //-- existe deja ?
    if( szTmp == Liste[i]){
      //-- OUI on previens
      alert('ERREUR\n[' + szTmp + '] est déjà dans la liste');
      //-- vide le champ
      oText.value = "";
      //-- remets le focus
      oText.focus();
      //-- on quitte la fonction
      return( false);
    }
  }
  //-- on ajoute
  Liste[nb] = szTmp;
  //-------------------------------------------------//
  //-- CREATION d'une nouvelle ligne dans la TABLE --//
  //-------------------------------------------------//
}
tu peux également te servir d'un return( true); pour continuer dans la fonction appelante.

Espérant avoir été un peu plus clair.
;O)
jeudi 6 janvier 2011 à 09:28:40 | Re : Controle de saisie (boucle)

jagogordonne

Bonjour,
Je suis de retour ;) voilà le code =>
Code Javascript :
var Liste = [];
		//---------------
	function fctAdd(){
	  //-- Initialisation
	  //var oText = document.getElementById( 'I_SAISIE');
	  
	  var nb = document.getElementById('nombre_arbre_prerempli').value;
	  
	  //-- parcours tous les elements de Liste
	  for ( var i =0 ; i < nb; i++){
			var oText = document.getElementById('menu'+i+'1').value;
			alert (oText);
			var szTmp = oText.value;
			alert (szTmp);
			//-- existe deja ?
				if( szTmp == Liste[i]){
				  //-- OUI on previens
				  alert('ERREUR\n['+szTmp+'] est déjà dans la liste');
				  //-- on quite la fonction
				  return(false);
				}
		}
	  //-- on ajoute
	  Liste[nb] = szTmp;
	  //-- vide le champ
	  oText.value = "";
	  //-- remets le focus
	  oText.focus();
	}


Quelque chose me perturbe lorsque je fais un alert de "oText" je récupère bien mon numéro d'arbre par compte après cette ligne =>

Code Javascript :
var szTmp = oText.value;


Si je fais une alerte de "szTmp" il me et "undefined" ... Je continue mes tests.
jeudi 6 janvier 2011 à 09:42:28 | Re : Controle de saisie (boucle)

jagogordonne

Et je voudrais apporter quelques précisions :

Code Javascript :
var oText = document.getElementById('menu'+i+'1').value;

Dans cette variable je récupère les numéros d'arbre un à un.

Et est ce normal d'avoir 2 noms différents pour la liste ?

Code Javascript :
if( szTmp == Liste[i])

Code Javascript :
Liste[nb] = szTmp;


merci.
jeudi 6 janvier 2011 à 11:38:50 | Re : Controle de saisie (boucle)

jagogordonne

re,
Vu que je n'y arrive je suis partie sur une autre fonction ... Cependant je ne sais pas comment exploiter les données d'un tableau javascript. Voici mon code =>
Code Javascript :
function fctAdd(){
		var nb = document.getElementById('nombre_arbre_prerempli').value;
		for( var i =0 ; i < nb; i++){
			var oText = document.getElementById('menu'+i+'1').value;
			var MonTableau = new Array();
			//ici il faut que je controle si l'enregistrement n'éxiste pas déjà
			//mais je ne vois pas comment parcourir le tableau
			//J'ai vu qu'il existe la Propriété input sur l'objet Array
			//mais je ne sais pas comment l'utilisé ...
				if (oText == MonTableau) {
					alert ('Le numéro '+oText+' est un doublon');
					return( false);
				}
			MonTableau[i] = oText;
			alert (MonTableau[i]); //ici je recupère bien les valeurs saisies
		}
		alert ("il n'existe pas de doublon");
	}

1 2

Cette discussion est classée dans : arbre, var, document, total, getelementbyid


Répondre à ce message

Sujets en rapport avec ce message

script [ par thigat ] voilà j'ai fais un script, mais je n'arrive pas a mettre un lien (url) dans ce script, voici le script :/* ATP - webmaster* Script - WebNet.News */va Methode "document.getElementById" // Probleme de modification de plusieurs DIV [ par Gunsnake ] Bonjour, Voici mon problème. J'aimerais, au moyen d'un bouton actionné, modifier plusieurs DIV de ma page web. Tout ceci dans le but d'éviter les fra Problème cahce avec IE [ par goulouk ] Bonjour,je voudrais savoir comment empécher de mettre une page en cache, ou alors obliger IE à recharger la page sans la prendre dans le cache.Je vous y en ras le bol : acitvé - désactivé des zone de texte [ par coyote_fx ] Hello à tous voilà Javascript n'est pas ma spécialité du tout...je voudrais juste activer ou désactiver plusieurs zones de textes en fonction d'un cli ajax/xmlhttprequest [ par David_monchy ] salut à tous,je développe un chat, et j'ai un problème: j'utilise une liste de connectés qui affiche en 'temps reel' les membres connectés. Seulement, infobulles et tableaux [ par David_monchy ] Salut à tous,j'ai pris ce script d'infobulle sur le net:    function affiche(action,contenu){            var voir;          &nb incrementer [ par tonytruand ] bonjour;j'ai un souci d'incrémentation. Dans une function ci dessous, j'aimerai que le i se traduise par 0 puis 1 puis 2 etc.J'ai bien essayer le  for Problème avec REGEX sous IE [ par death83 ] Salut a tous,je suis entrain de faire un petit script qui fonctionne bien sauf sur IE. J'ai une fonction qui permet la génération automatique d'un tex interdire mots [ par tonytruand ] Bonjour à la communauté !j'ai besoin de votre aide, en effet je cherche à retirer dans un texte, par exemple, tous les : le la les du en ect. J'ai pou Problème Firefox & document.getElementById [ par leviz ] Bonjour,J'ai un problème avec Firefox, il ne me recupère pas les valeurs de mon formulaire et pourtant sous IE ça fonctionne très bien.        alert(


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales