Ouiiii melepe, c’est en effet ce que j’aimerais réussir à ajouter au formulaire actuellement en ligne.
Je viens d’appliquer ton conseil technique pour la prise en compte des options supplémentaires à cocher si l’utilisateur veut préciser la présence de certains facteurs humains.
Voici ce que cela donne :
<?php
require_once "show_head.php";
require_once "show_header.php";
require_once "show_menu_titre_moteur.php";
require_once "show_footer.php";
require_once __DIR__ . "/../Utilisateur.php";
try
{
if ($_SERVER['REQUEST_METHOD']!= 'POST')
throw new UnexpectedValueException('Erreur de méthode d\'envoi'); {
$filtre_def = array
(
'nom' => array
(
'filter' => FILTER_VALIDATE_REGEXP,
'flags' => FILTER_NULL_ON_FAILURE,
'options' => array
(
'regexp' => '#^[\w -]+$#i'
)
),
'prenom' => array
(
'filter' => FILTER_VALIDATE_REGEXP,
'flags' => FILTER_NULL_ON_FAILURE,
'options' => array
(
'regexp' => '#^[\w -]+$#i'
)
),
'age' => array
(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_NULL_ON_FAILURE,
'options' => array
(
'min_range' => 14,
'max_range' => 100
)
),
'message' => array
(
'filter' => FILTER_UNSAFE_RAW,
'flags' => FILTER_NULL_ON_FAILURE
),
'courriel' => array
(
'filter' => FILTER_VALIDATE_EMAIL,
'flags' => FILTER_NULL_ON_FAILURE
),
'dyslexie' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'dysphasie' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'dyspraxie' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'dyscalculie' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'dysorthographie' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'surdite' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'autisme' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'surdoue' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'autres' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'autres_details' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'etgauto' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'etgdiff' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'etgech' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'etgobte' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'conddif' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
),
'condech' => array
(
'filter' => FILTER_VALIDATE_BOOLEAN,
'flags' => FILTER_NULL_ON_FAILURE
)
)
};
$filtre_resultat = filter_input_array(INPUT_POST,$filtre_def);
Ensuite, j’ai conservé cette alerte, en cas de données invalides :
throw new UnexpectedValueException('Données invalides');
}´´´
Puis, c'est là que les variables sont créées :
```php
$nom = $filtre_resultat['nom'];
$prenom = $filtre_resultat['prenom'];
$age = $filtre_resultat['date_naissance'];
$courriel = $filtre_resultat['courriel'];
$destinataire = "contact@monotoecole.fr";
$message = $filtre_resultat['message'];
$dyslexie = $filtre_resultat['dyslexie'];
$dysphasie = $filtre_resultat['dysphasie'];
$dyspraxie = $filtre_resultat['dyspraxie'];
$dyscalculie = $filtre_resultat['dyscalculie'];
$dysorthographie = $filtre_resultat['dysorthographie'];
$surdite = $filtre_resultat['surdite'];
$autisme = $filtre_resultat['autisme'];
$surdoue = $filtre_resultat['surdoue'];
$autres = $filtre_resultat['autres'];
$autres_details = $filtre_resultat['autres_details'];
$etgauto = $filtre_resultat['etgauto'];
$etgdiff = $filtre_resultat['etgdiff'];
$etgech = $filtre_resultat['etgech'];
$etgobte = $filtre_resultat['etgobte'];
$conddif = $filtre_resultat['conddif'];
$condech = $filtre_resultat['condech'];
Et je fais la liste des options sélectionnées :
echo "Voici la liste des points à prendre en compte pour l'accompagnement : " $optionsForm[$opt]".";
}´´´
Mais je ne sais pas si c'est la bonne méthode. Il y a dans le formulaire, à la fois des données venant de la base (donc récupérées pas PHP en back) et des données collectées par JS en front.
Je vais m'intéresser à la création d'un environnement de travail local, c'est une bonne idée et merci beaucoup pour ce lien. J'espère que je vais m'en sortir.
Pour l'instant, les améliorations apportées ne m'ont malheureusement pas encore sorti de mon Err500.
Il est possible aussi que cette erreur soit provoquée par une coquille dans mon script JS (fichier qui gère l'affichage conditionné de blocs de d'options à cocher).
bug/1173575, non-JS module files deprecated.
(anonymous) @ (index):1882
Et la fonction debug du navigateur m'indique : "No resource with given URL found"
```js
function triggerRadio(radio, hide, show) {
if(jQuery(radio).prop('checked')) {
jQuery(show).show();
jQuery(hide).hide();
}
else {
jQuery(hide).show();
jQuery(show).hide();
}
}
jQuery(document).ready(function() {
/* Banchement des éléments */
jQuery('#TL').click(function() {
triggerRadio('#TL', '#optPC', '#optTL');
});
jQuery('#PC').click(function() {
triggerRadio('#PC', '#optTL', '#optPC');
});
jQuery('#AUT').change(function() {
jQuery('#AUT_detail').prop('disabled', !(jQuery('#AUT').prop('checked')));
});
jQuery('#toutazero').click(function() {
jQuery('#TL, #PC').prop('checked', false);
jQuery('#optTL, #optPC').hide();
jQuery('#AUT_detail').prop('disabled', true);
});
});
// Récupérer toutes les checkbox cochés
$("input[type='checkbox']:checked").each(function() {
console.log($(this).attr('id'));
});
$("input[type='radio']:checked").each(function() {
console.log($(this).attr('id'));
});