IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire de questions pour un résultat en fonction des réponses


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Courtier en téléphonie
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Courtier en téléphonie
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 3
    Points
    3
    Par défaut Formulaire de questions pour un résultat en fonction des réponses
    Bonjour,

    J'ai essayé de faire au mieux pour le titre...

    Je souhaiterais faire une page avec des questions. Pour répondre, des cases radios ou des listes de choix ou des cases à cocher, et 2 cases pour des montants en euros.

    Il y aurait grosso merdo 4 questions en tout :
    -> 3 avec des boutons radios (ou liste ou case à cocher...) et 1 seul choix possible
    -> 1 avec 2 cases pour insérer des chiffres

    En fonction des réponses, je voudrais pouvoir, comme dans un tableau excel ou je rentre des données, automatiser une réponse, et qu'un résultat s'affiche (texte + chiffres), existant dans une base.

    Je ne sais pas trop comment m'y prendre, auriez-vous une idée pour moi ?
    J'ai regardé sur google, mais je ne sais pas quoi mettre dans la recherche pour trouver précisément cette demande.

    Merci de votre aide !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    et qu'un résultat s'affiche (texte + chiffres), existant dans une base.
    Comment est structuré ta base de données pour faire le lien entre les questions et les réponses ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Courtier en téléphonie
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Courtier en téléphonie
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    En fait pour le moment elle ne l'est pas.

    Je peux faire plusieurs tables, 1 seule, c'est en fonction du plus simple.

    Il pourrait y avoir autant de tables que de questions + éventuellement 1 pour les réponses, puisque cette base serait dédiée au questionnaire !

    J'espère que je réponds à la question, merci de ton aide

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu pourrais donner un exemple concret de ce que tu veux obtenir ?
    Et pourquoi tu veux utiliser une base de données ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Homme Profil pro
    Courtier en téléphonie
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Courtier en téléphonie
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Oui, je peux le faire

    1) Ce que je souhaite faire

    C'est une application pour la téléphonie.
    Je souhaite poser des questions à l'utilisateur, qui vont permettre de définir un résultat, et qui m'enverra ensuite un mail.

    - Question 1 : Quel opérateur préférez-vous ? (5 réponses au choix)
    1 seule réponse possible (par bouton radio, case à cocher, liste,....)

    - Question 2 : Quel type d'offre est concernée par votre demande ? (7 réponses au choix)
    1 seule réponse possible (par bouton radio, case à cocher, liste,....)

    Ces 2 questions amènent déjà à 1 premier filtrage simple.
    La question 1 servira pour la fin, la question 2 permet déjà de déterminer quel sera le formulaire suivant.

    Les formulaires suivants vont avoir une seule question en commun :

    - Question 3 : Quel est le montant actuel de votre facture HT ? (Réponse chiffrée)

    Ensuite 2 à 3 autres questions selon le formulaire.


    Quand les réponses sont données, il y a une page qui affiche une préconisation :

    Si la meilleure préconisation est chez l'opérateur que l'utilisateur préfère, il n'y a que celle là, sinon il y a celle avec son opérateur, puis celle qui est la plus intéressante.

    Avant que le résultat ne soit donné, je souhaiterais que l'utilisateur renseigne ses coordonnées (nom / email) et qu'un mail lui soit et me soit envoyé (2 mails différents, mais ça c'est autre chose )


    En fait, j'ai réussi à faire ça avec Excel, c'était mon projet pour mon épreuve informatique du bac :p
    Mais je n'arrive pas à le transposer aujourd'hui sur un site internet avec des formulaires et une base de données !


    2) Pourquoi utiliser une base de données

    D'abord parce que c'est la 1ère chose qui me vient à l'esprit quand je rapproche les 2 idées de listing de données et de site internet...

    Ensuite parce que les informations évoluent, et que j'ai besoin d'une infrastructure qui me permette de mettre à jour.
    Je suppose que c'est la base de données qui est adaptée, mais si autre chose est envisageable, pourquoi pas !

  6. #6
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Autre question : est-ce que tu souhaites conserver dans ta base les données utilisateurs ? (mail et réponses au formulaire ?)
    Ou bien seulement les règles de gestion des N opérateurs qui te permettent de faire le switch et le mail approprié ?
    Si réponse 2, tu peux consacrer une classe PHP sans base de données à cette gestion (évolutive probablement, mais tu n'aurais que ce fichier à maintenir) et te passer de db.
    En objet basique et bâclé, ça donnerait

    Code : 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
    class Gestion {
       public $client;
       public $mail;
       public $operateur_prefere;
       public $type_offre;
       public $facture_ht;
       public $reponse1;//etc
     
       public function __construct($c,$m,$op,$to,$fht,$r1 //etc){
          //tu affectes tes variables en vérifiant le type pour les saisies libres (qu'il faut donc limiter)
          if($m est bien un format mail){
             $this->mail=$m;
          }
          $this->operateur_prefere=$op;//etc...
          //puis tu lances ton switch
          switch($this->type_offre){
             case 'offre1':
                //là, tu fais tes calculs en fonction de la facture et autres paramètres
                $best='operateur1';
             break;
             case 'offre2':
                //là, tu fais tes calculs en fonction de la facture et autres paramètres
                $best='operateur4';
             break;
             default:
                $best='X';
    	  }
          if($best != $this->operateur_favori){
              //derniers ajustements à faire ici
          }
          if($best!='X'){
             if(mail($this->mail,"Notre résultat","L'opérateur le plus adapté à votre cas est l'$best")){
                echo 'Mail bien envoyé avec ce contenu<br/>';
                echo "L'opérateur le plus adapté à votre cas est l'$best";
             }
             else{
                echo 'ça eut merdé';
             }
          }
          else{
             if(mail($this->mail,"Pas de résultat","Désolé, mais les éléments que vous avez saisis ne nous ont pas permis de vous aider.")){
                echo 'Mail bien envoyé avec ce contenu<br/>';
                echo "Désolé, mais les éléments que vous avez saisis ne nous ont pas permis de vous aider.";
             }
             else{
                echo 'ça eut merdé';
             }
          }
      }
    }
    et dans ton fichier traitement.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //tu te contenterais d'écrire
    include('Gestion.php');
    if(isset($_POST['valider'])){
       $g=new Gestion($_POST['client'],$_POST['mail'] //etc);
    }
    //ou bien la même chose dans une boucle mais en passant tes données xls en parametres, si c'est de quoi tu pars...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  7. #7
    Candidat au Club
    Homme Profil pro
    Courtier en téléphonie
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Courtier en téléphonie
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Salut et merci !

    Je fais une première réponse sans avoir encore regardé, je m'y penche vraiment ce soir...

    Je n'ai pas besoin de conserver les données utilisateur dans ma base car le but est de les recontacter et que je les mette dans ma propre base CRM "perso".
    Et comme tout est envoyé par mail, c'est suffisant !

    Merci beaucoup pour le code, je regarde ça dès ce soir !!

  8. #8
    Candidat au Club
    Homme Profil pro
    Courtier en téléphonie
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Courtier en téléphonie
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Salut,

    Oui c'est ça en partie.
    Si tu veux mon souci c'est de pas en savoir assez pour en fait utiliser les données de ma base de données pour ensuite les comparer au formulaire.

    En d'autres termes, comment construire mon comparatif, pour que d'une part, il me donne la meilleure offre avec 3 des valeurs données (type d'offre, abonnement désiré et consommations), puis qu'il me donne l'offre de l'opérateur préféré de l'utilisateur si différent...

    Je ne suis pas persuadé que ce soit une bonne idée de faire ça tout seul quand même, ça me semble plus titanesque que prévu... Dommage que je n'arrive pas à enregistrer le fichier excel en html avec les listes déroulantes, ce serait top !!!

  9. #9
    Candidat au Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Avez-vous essayé l'outil SurveyMonkey?
    Bonjour,

    Votre scénario a l'air assez complexe mais vous pourriez essayer la solution Survey Monkey, cet outil vous permettra peut-être de venir à bout de votre problème sauf pour la partie réponse automatisée vraisemblablement.

    J'espère vous avoir été utile,

    à bientôt.

  10. #10
    Candidat au Club
    Homme Profil pro
    Courtier en téléphonie
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Courtier en téléphonie
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Sisi, cela peut toujours être utile.
    Je me suis rendu sur Lime Survey, mais chaque outil a son utilisation, et si lime survey me paraît un peu lourd, votre solution pourrait être plus pratique pour moi.

    Merci d'avance.

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/04/2015, 18h51
  2. Fonction sum, résultat en fonction des tables dans from?
    Par Archeus01 dans le forum Requêtes
    Réponses: 4
    Dernier message: 29/01/2013, 18h02
  3. Réponses: 3
    Dernier message: 18/04/2012, 07h13
  4. Réponses: 6
    Dernier message: 01/07/2011, 17h09
  5. [XL-2003] Formulaire modulable en fonction des réponses
    Par tomo80 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/04/2011, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo