Bonjour à tous !

Je sollicite votre aide pour la mise en forme et la simplification de mon code, cela fait quelques jours que je suis dessus et je ne trouve pas de méthode pour faire mieux.

J'ai des problèmes d'affichages... enfin le problème est vu que je cache des div et que je fais des tableaux dans les div les zones de saisies ne sont pas alignés.

Et après ma fonction est légèrement imposante... donc si vous avez une idée je suis preneur !

Merci


Voici le code PHP qui me permet en fonction du choix de la liste déroulante d'afficher ou non des zones de saisies.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 
// Permet d'afficher un menu déroulant contenant les traitements possibles
function affichage_trait($tab_traitement, $liste_p, $liste_param) {
	// Récupération en JS du tableau contenant traitement_parametre
	echo '<script>
		var liste_p = '.json_encode($liste_p).';
	</script>';
 
	echo '<form method="post" name="form_traitement">';
		echo '<fieldset>';
			echo label('Choix du traitement ');
		        echo '<select name="list" id="list">';
			echo '<option value="-1" title="Veuillez choisir un traitement &agrave effectuer">-- Veuillez choisir un traitement</option>';
			for ($i = 0; $i < count($tab_traitement); $i++) {
				echo '<option value="'.$tab_traitement[$i][0].'" title="'.$tab_traitement[$i][2].'">'.$tab_traitement[$i][1].'</option>';
			}						
			echo '</select>';
			// Libellés et widgets caché de base et affiché seulement si besoin
			echo '<div id="reception" name="reception">'; 
				echo '<table><tr><td>';
					label_cache('datepicker', 'dateReception', $liste_param[0][2]);
					echo '</td><td>';
					datepicker('datepickerR');
					echo '</td></tr><tr><td>';
					label_cache('zoneR', 'alphaR', 'Commentaire: ');
					echo '</td><td>';
					zone_de_saisie('zoneAR', 'Veuillez rentrer les informations necessaires');
				echo '</td></tr></table>';
			echo '</div>';
			echo '<div id="arrete" name="arrete">'; 
				echo '<table><tr><td>';
					label_cache('datepicker', 'dateArrete', $liste_param[1][2]);
					echo '</td><td>';
					datepicker('datepickerA');
					echo '</td></tr><tr><td>';
					label_cache('zoneAA', 'alphaA', 'Commentaire: ');
					echo '</td><td>';
					zone_de_saisie('zoneAA', 'Veuillez rentrer les informations necessaires');
				echo '</td></tr></table>';
			echo '</div>';					
			echo '<div id="mois_paye" name="mois_paye">'; 
				echo '<table><tr><td>';
					label_cache('datepicker', 'datePaye', $liste_param[2][2]);
					echo '</td><td>';
					datepicker('datepickerP');
					echo '</td></tr><tr><td>';
					label_cache('zoneAP', 'alphaP', 'Commentaire: ');
					echo '</td><td>';
					zone_de_saisie('zoneAP', 'Veuillez rentrer les informations necessaires');
				echo '</td></tr></table>';
			echo '</div>';
			echo '<div id="debut_fin" name="debut_fin">'; 
				echo '<table><tr><td>';
					label_cache('datepicker', 'dateDebutFin', $liste_param[3][2]);
					echo '</td><td>';
					datepicker('datepickerD');
					datepicker('datepickerF');
					echo '</td></tr><tr><td>';
					label_cache('zoneADF', 'alphaDF', 'Commentaire: ');
					echo '</td><td>';
					zone_de_saisie('zoneADF', 'Veuillez rentrer les informations necessaires');
				echo '</td></tr></table>';
			echo '</div>';
			echo '<div id="alpha" name="alpha">'; 
				echo '<table><tr><td>';
					label_cache('zoneA', 'alpha', $liste_param[4][2]);
					echo '</td><td>';
					zone_de_saisie('zoneA', 'Veuillez rentrer les informations necessaires');
				echo '</td></tr></table>';
			echo '</div>';
			bouton_js('valider', 'Valider', 'verif_form_traitement()');
		echo '</fieldset>';
	echo '</form>';
	// Vérification de l'appui sur le bouton 'valider'
	if (verification_bouton('valider')) {
		$choix = $_POST['list'];			
	} else {
		$choix = null;
	}
	return $choix;
}

Et le code JavaScript associé qui me permet de cacher ou non les zones de saisies
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
$(document).ready(function() {
	// On cache tous les widgets avant de commencer
	$("#reception").hide();
	$("#arrete").hide();
	$("#mois_paye").hide();
	$("#debut_fin").hide();
	$("#alpha").hide();
 
	$("#list").change(function() {
		var numeroT = $("#list").val();
		var longueur = liste_p.length;	
 
		var nbParam = 0;
		for (var j = 0; j < longueur; j++) {
			if (liste_p[j][0] == numeroT) {
				nbParam++;
			}
		}
 
		for (var i = 0; i < longueur; i++) {
			// On cache tous les widgets avant de commencer
			$("#reception").hide();
			$("#arrete").hide();
			$("#mois_paye").hide();
			$("#debut_fin").hide();
			$("#alpha").hide();
 
			if (numeroT == liste_p[i][0]) { 
				for (var j = i; nbParam != 0; j++, nbParam--) {
					if (numeroT == liste_p[j][0]) { 
						if (liste_p[j][1] == 0)  { // date de réception
							$("#reception").show();
						} else if (liste_p[j][1] == 1) { // date de l'arrêté
							$("#arrete").show();
						} else if (liste_p[j][1] == 2) { // mois de paye
							$("#mois_paye").show();
						} else if (liste_p[j][1] == 3) { // date de début/fin
							$("#debut_fin").show();
						} else if (liste_p[j][1] == 4) { // alphanumérique
							$("#alpha").show();
						}
					}
				}
				break;
			}
		}
	});
});