Bonjour
J'utilise un formulaire pour récupérer les données d'une petite enquête très temporaire auprès de mes clients, mais je n'utilise pas de bases de données (pas de possibilité fiable sur le serveur), le formulaire une fois rempli génère un mail et aussi un petit fichier que je récupère dans Excel :
Les SOUCIS :
1. Je n'arrive pas à imposer tous les champs demandés lors de la saisie, notamment quand il s'agit de bouton radio (genre 1 choix parmi 3 possibilités), et aussi lors de l'utilisation de checkbox (0, ou 1, ou 2 choix)
Première question : y aurait-il une méthode pour imposer le remplissage ? (je vérifie les champs avec du JS/regexp mais dans les 2 cas vus plus haut -bouton radio et check box-, je ne trouve pas de code compatible) car ce sont des choix multiples (à priori)
Exemple de code pour vérifier la présence d'un email par exemple (et sa mise en forme)
Code :
- regexp = /^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i;
- if (!regexp.test(theForm.Editbox3.value))
- {
- alert("Please enter a valid email address." );
- theForm.Editbox3.focus();
- return false;
- }
- if (theForm.Editbox3.value == "" )
- {
- alert("Please enter a value for the \"email_from\" field." );
- theForm.Editbox3.focus();
- return false;
- }
|
2. Je construit mon fichier avec des séparateurs de champs " | ", mais le soucis qui se pose est que si le champ n'est pas rempli (soucis N°1), le fichier généré ne comporte pas non plus ce séparateur de champ, rendant la mise en forme par Excel laborieuse (saut de colonnes) ...
code de construction de mon fichier
Code :
- function save_form($vars){
- global $database_file, $database_fields;
- $date_time = date('d-m-Y | ');
- $f = fopen($database_file, 'a');
- if (!$f){
- die("Cannot open db file for save" );
- }
- foreach ($vars as $k=>$v) {
- $vars[$k] = str_replace(array("|", "\r","\n" ), array('_',' ',' '), $v);
- }
- if (is_array($database_fields)) {
- $vars_orig = $vars;
- $vars = array();
- foreach ($database_fields as $k)
- $vars[$k] = $vars_orig[$k];
- }
- $str = $date_time;
- $str .= join(' | ', $vars);
- fwrite($f, $str."\n" );
- fclose($f);
- }
|
en gras (ligne 18) la génération du séparateur choisi " | "
Deuxième question (découlant du premier soucis ...) : quelle serait la méthode pour imposer la génération de ce séparateur même si le champ à remplir de mon formulaire n'est pas saisie (et donc généré) ?
Merci pour toute réponse.
Message édité par dann le 01-06-2016 à 12:31:53