En entrée tu as un tableau de règles que je copierai dans la partie : $rules = Array ( ,F16 => F4=>65 || F18=1 || F8=1 ,F21 => F3=F && F4=>40 ,F23 => F3=H && F22=1 ,F28 => F3=F && F22=1 ,F62 => F194=0 && (F4=≥ 65 || F94=1 || F103=1) ,F63 => F194=0 && F4=≥65 ,F67 => F194=0 && F4=≥65 ,F98 => F93=1 && F3=H ,F99 => F93=1 && F3=F && F21=0 ,F101 => F93=1 && F3=H ,F110 => F107=1 || F108=1 ,F111 => F107=1 || F108=1 ,F112 => F107=1 || F108=1 ,F113 => F107=1 || F108=1 ,F179 => F194=0 && (F4=?65 || F94=1 || F103=1) ,F188 => F194=0 && (F21=0 || (F3=F && F4=<40)) ,F191 => F194=0 && F4= BETWEEN 11 && 24 ,F192 => F194=0 && F4=<65 ,F193 => F194=0 && F4= BETWEEN 11 && 24 ,F242 => F4=>60 || F77=<0,18 ,F243 => F4=>60 || F77=<0,18 ,F244 => F4=>60 || F77=<0,18 ,F245 => F4=>60 || F77=<0,18 ,F256 => F107=1 || F108=1 ,F272 => F107=1 || F108=1 ,F343 => F76=1 && F77=0, F78=0 && F342=0 ,F345 => F194=0 && F4= BETWEEN 11 && 26 ); Je voudrais que tu me sortes des fonctions JS qui seraient appelées en cas de modification de la valeur, voici un exemple dans le cas ou la question F194 est modifiée : "onchange=\"handleFieldChange('F194'); " function functionF194(value) { const rules = { 'F62': () => getV('F194') == 0 && (getV('F4') >= 65 || getV('F94') == 1 || getV('F103') == 1), 'F63': () => getV('F194') == 0, 'F64': () => getV('F194') == 0, 'F66': () => getV('F194') == 0, 'F179': () => getV('F194') == 0 && (getV('F4') >= 65 || getV('F94') == 1 || getV('F103') == 1), 'F188': () => getV('F194') == 0 && (getV('F21') == 0 || (getV('F3') == 'F' && getV('F4') <= 40)), 'F189': () => getV('F194') == 0, 'F190': () => getV('F194') == 0, 'F191': () => getV('F194') == 0, 'F192': () => getV('F194') == 0, 'F345': () => getV('F194') == 0 }; for (let targetId in rules) { toggleQuestionRow(targetId, rules[targetId]()); } } Et je voudrai que tu me génères un tableau PHP 'enable_field' que je copierai dans la partie PHP en fonction des règles qui me pertmet au chargement des données de ne pas poser les questions en fonction des règles et des valeurs Exemple : $this->isFieldHidden['F101'] Si F93=Y AND F3=H Donne moi une liste inversée de tous les champs concerné $rules = Array ( ,F16 => F4=>65 OR F18=Y OR F8=Y ,F21 => F3=F AND F4=>40 ,F23 => F3=H AND F22=Y ,F28 => F3=F AND F22=Y ,F62 => F194=N AND (F4=≥ 65 OR F94=Y OR F103=Y) ,F63 => F194=N AND F4=≥65 ,F67 => F194=N AND F4=≥65 ,F98 => F93=Y AND F3=H ,F99 => F93=Y AND F3=F AND F21=N ,F101 => F93=Y AND F3=H ,F110 => F107=Y OR F108=Y ,F111 => F107=Y OR F108=Y ,F112 => F107=Y OR F108=Y ,F113 => F107=Y OR F108=Y ,F179 => F194=N AND (F4=?65 OR F94=Y OR F103=Y) ,F188 => F194=N AND (F21=N OR (F3=F AND F4=<40)) ,F191 => F194=N AND F4= BETWEEN 11 AND 24 ,F192 => F194=N AND F4=<65 ,F193 => F194=N AND F4= BETWEEN 11 AND 24 ,F242 => F4=>60 OR F77=<0,18 ,F243 => F4=>60 OR F77=<0,18 ,F244 => F4=>60 OR F77=<0,18 ,F245 => F4=>60 OR F77=<0,18 ,F256 => F107=Y OR F108=Y ,F272 => F107=Y OR F108=Y ,F343 => F76=Y AND F77=N, F78=N AND F342=N ,F345 => F194=N AND F4= BETWEEN 11 AND 26 ); J'attends la liste qui dit que : $rulesIncidence = Array { F342 => array(F343) } $rulesIncidence = array( F3 => array(F21, F23, F28, F98, F99, F101, F188), F4 => array(F16, F21, F62, F63, F67, F179, F188, F191, F192, F193, F242, F243, F244, F245, F345), F8 => array(F16), F18 => array(F16), F21 => array(F99, F188), F22 => array(F23, F28), F76 => array(F343), F77 => array(F242, F243, F244, F245, F343), F78 => array(F343), F93 => array(F98, F99, F101), F94 => array(F62, F179), F103 => array(F62, F179), F107 => array(F110, F111, F112, F113, F256, F272), F108 => array(F110, F111, F112, F113, F256, F272), F194 => array(F62, F63, F67, F179, F188, F191, F192, F193), F342 => array(F343) );