Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2322 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Soucis de mise en forme de formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Soucis de mise en forme de formulaire

n°2282820
dann
Posté le 01-06-2016 à 12:19:25  profilanswer
 

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 :
  1. regexp = /^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i;
  2.    if (!regexp.test(theForm.Editbox3.value))
  3.    {
  4.       alert("Please enter a valid email address." );
  5.       theForm.Editbox3.focus();
  6.       return false;
  7.    }
  8.    if (theForm.Editbox3.value == "" )
  9.    {
  10.       alert("Please enter a value for the \"email_from\" field." );
  11.       theForm.Editbox3.focus();
  12.       return false;
  13.    }


 
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 :
  1. function save_form($vars){
  2.     global $database_file, $database_fields;
  3.     $date_time = date('d-m-Y | ');
  4.     $f = fopen($database_file, 'a');
  5.     if (!$f){
  6.         die("Cannot open db file for save" );
  7.     }
  8.     foreach ($vars as $k=>$v) {
  9.         $vars[$k] = str_replace(array("|", "\r","\n" ), array('_',' ',' '), $v);
  10.     }
  11.     if (is_array($database_fields)) {
  12.         $vars_orig = $vars;
  13.         $vars = array();
  14.         foreach ($database_fields as $k)
  15.             $vars[$k] = $vars_orig[$k];
  16.     }
  17.     $str = $date_time;
  18.     $str .= join(' | ', $vars);
  19.     fwrite($f, $str."\n" );
  20.     fclose($f);
  21. }


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
mood
Publicité
Posté le 01-06-2016 à 12:19:25  profilanswer
 

n°2282826
rufo
Pas me confondre avec Lycos!
Posté le 01-06-2016 à 14:49:41  profilanswer
 

Pour la n°2, mets les champs dans un tableau (un array) et tu fais un implode("|", $VarArray);


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2282827
yoyopouce
Posté le 01-06-2016 à 15:18:12  profilanswer
 

pour la n 1 regarde l'attribut required en html5 ca devrait faire le taff

n°2282831
dann
Posté le 01-06-2016 à 16:52:17  profilanswer
 

Bonjour
merci de vos réponses et conseils judicieux
 
Pour le moment j'ai retravaillé mon formulaire, en ajoutant des boutons radios invisibles sélectionnés à l'origine (hidden / checked)
Cela me solutionne le problème : si les personnes ne répondent pas complètement au formulaire, ces champs invisibles pré-sélectionnés renvoient > critère non répondu  
le nombre de critères et de séparateurs sont donc bien renvoyés en totalité (pour analyse sur tableur et colonnes avec le séparateur)
Je suis en train de tester et ça semble fonctionner correctement avec les premiers retours.
 

yoyopouce a écrit :

pour la n 1 regarde l'attribut required en html5 ca devrait faire le taff

j'ai cherché, mais comme ce sont des boutons radios, si je les mets tous (par critères) en required ça plante (normal) et si je n'en laisse qu'un (sur 3 choix/boutons parfois ...) ça ne suffit pas. Je ne trouve pas comment obliger à sélectionner une réponse parmi plusieurs avec les boutons radios (car choix multiples)
 

rufo a écrit :

Pour la n°2, mets les champs dans un tableau (un array) et tu fais un implode("|", $VarArray);

oui effectivement ça devrait ainsi m'envoyer tous les champs même ceux qui ne sont pas remplis, et surtout bien l'indispensable séparateur "|",  
 
Mais bon je débute, et c'est ardu pour moi :(
 
Merci


Message édité par dann le 01-06-2016 à 17:08:19

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Soucis de mise en forme de formulaire

 

Sujets relatifs
Petit problème avec mon formulaire d'inscription/connexionformulaire à double emploi
Créer un formulaire sur mesureFormulaire ACCESS: créer bouton commande d'ouverture fichier bdd
Mise en couleur d'une cellule VBAMise en page responsive
Soucis avec une reqête sql (oracle) [Résolu]Formulaire responsive design
Formulaire avec plusieurs submit / Safari[Resolu] Une script qui valide une formulaire Web
Plus de sujets relatifs à : Soucis de mise en forme de formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR