Page 1 sur 1

Générer date automatiquement dans un tableau

Posté : 18 avr. 2014, 00:46
par valmeras
Bonsoir à tous,

J'ai un tableau de calcul qui se présente comme suit :
<script type="text/javascript">
function purge(nbre)
{
	nbre = nbre.replace(',','.'); // conversion séparateur ',' en '.'
	nbre = nbre.replace(/([^0-9 ^.]|\.{2,5}|\s)/g,''); // recherche et remplacement de caractères non désirés
	return nbre;
}
function add() 
{
	var f = document.forms[0];
	var tot = 0;

	// pour chaque élément du formulaire
	for(var i=0; i<f.length; i++) 
	{
		// si c'est un champ de texte et dont le nom commence par 'ch_'
		if(f[i].type=='text' && f[i].name.indexOf('nbre_')>=0) 
		{

			f[i].value = purge(f[i].value); // correction du contenu du champ

			tot += f[i].value*1; /* ajout de cette valeur à la variable 'tot'. Comme la valeur d'un champ est de type texte on l'a transformée en nombre (en le multipliant par 1) avant de faire l'addition */
		}
	}	

	f['total'].value = tot; // insertion du résultat
}
</script>
<style>
table{
border-collapse: collapse;
}
td , th
{
border: 1px solid  black;
}
</style>

<form>
<table>
	<tr>
		<th>Ann&eacute;e</th>
		<th>Frais indirects</th>
		<th>Frais directs</th>
		<th>Total</th>
	</tr>
	<tr>
		<td><input type=text value="2014" readonly></td>
		<td><input type=text name="nbre_1" onkeyup="add()"></td>
		<td><input type=text name="nbre_2" onkeyup="add()"></td>
		<td><input type=text name="total" readonly></td>
	</tr>
</table>
</form>
Ce que j'aimerais faire, c'est que la date de l'année en cours doit s'afficher de façon dynamique avec les colonnes qui vont avec, suivi de 2 autres années, c'est-à-dire par exemple 2015 et 2016. Si nous sommes en 2015, 2016 et 2017 doivent apparaître.

Voila ma péoccupation et je ne sais pas comment m'y prendre.

Merci

Re: Générer date automatiquement dans un tableau

Posté : 18 avr. 2014, 08:51
par morganK
Allez, c'est vendredi, c'est cadeau
<?php for($i = 0; $i < 3 ; $i++) { ?>
    <tr>
        <td><input type=text value="<?=date('Y')+$i;?>" readonly></td>
        <td><input type=text name="nbre_1" onkeyup="add()"></td>
        <td><input type=text name="nbre_2" onkeyup="add()"></td>
        <td><input type=text name="total" readonly></td>
    </tr>
<?php }?>
Petite explication, on créé une boucle qui va s'exécuter en initialisant $i à 0 tant que $i est inférieur à 3 (donc 3 fois), en incrémentant $i à chaque passage.
Dans le premier td de ton tr, on y ajoute l'année (date('Y')) + $i, qui vaudra respectivement à chaque passage 0, 1 et 2 donc la valeur de ton input sera 2014, 2015 et 2016.

Re: Générer date automatiquement dans un tableau

Posté : 18 avr. 2014, 10:21
par valmeras
Merci @morganK pour ton code, ça fonctionne. Le problème maintenant est que le calcul automatique ne se fait plus. Comment m'y prendre pour que cela fonctionne à nouveau?

Re: Générer date automatiquement dans un tableau

Posté : 18 avr. 2014, 10:34
par morganK
Tu peux ajouter l'année dans le name des inputs
<td><input type=text name="<?=date('Y')+$i;?>-nbre_1" onkeyup="add()"></td>
<td><input type=text name="<?=date('Y')+$i;?>-nbre_2" onkeyup="add()"></td>

Re: Générer date automatiquement dans un tableau

Posté : 18 avr. 2014, 11:34
par valmeras
J'ai essayé ta méthode mais le calcul ne se fait toujours pas.

Re: Générer date automatiquement dans un tableau

Posté : 18 avr. 2014, 12:18
par valmeras
Quand il s'agit d'une seule ligne, le calcul se fait. Mais quand on va au-delà, il ne se fait pas.