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 :

un espace qui fout la panique


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut un espace qui fout la panique
    Bonjour,

    je sais qu'il faut éviter les espaces en programmation web, mais là, j'y peux rien car j'en hérite (il vient d'un fichier CSV dont je lis le contenu).
    Il se trouve que j'ai un espace dans un nom de famille (Ben Abdellah). Celui-ci est stocké comme ça dans la bdd (Dans l'enregistrement, la colonne lastname contient un espace).
    A un moment donné dans mon code, j'ai un tableau dont les 2 colonnes sont firstname et lastname. Une des lignes est du coup
    Bilhel Ben Abdellah
    Ensuite, j'en extrais prénom et nom en faisant list($firstname,$lastname)=explode(" ",$user);. Le souci est que dans mon cas, j'ai $firstname=Bilhel et $lastname=Ben . C'est logique mais comment puis-je obtenir $lastname=Ben Abdellah sans coder une usine à gaz ? (et en gérant aussi le cas (on sait jamais) où le prénom contient un espace (et en partant du postulat que les infos sont correctes en bdd)).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 184
    Points
    17 184
    Par défaut
    Salut

    A mon humble avis, il est impossible de trouver une formule qui donnera un résultat conforme.
    Si prénom en 2 voir 3 mot et nom en 1 seulement, ou, prénom en 1 mot et nom en 1, 2, voir 3 mots.... si .... ,il y a trop de combinaisons.
    A une époque pas si lointaine je me suis cassé la tête là dessus, que se soit en BDs ou autres archivages, il faut absolument 2 champs pour mémoriser d'un coté le nom, de l'autre le prénom.
    Je suivrai cette discussion, car en une douzaine d'années ou plus, je n'ai jamais vue de solution autre que 2 champs.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 59
    Points : 54
    Points
    54
    Par défaut
    Dans une bdd l'information doit être stockée de façon dichotomique. Le prénom est différent du nom, il doit donc aller dans un champs séparé du nom.
    Du coup, celui qui a fait le csv (ou la bdd d'ou est extrait le csv) n'a pas fait son boulot correctement.
    Normalement, c'est retour à l'envoyeur avec prière de corriger son caca avant de fournir un nouveau fichier de travail correctement formaté.

    Mais ce n'est pas toujours possible et si c'est le cas, je procéderais de la façon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    explode sur l'espace
    count du tableau
    Si count = 2 
         cas général (nom, prénom)
    Sinon 
        cas particulier a traiter manuellement => mise en table tampon pour traitement ultérieur. 
    fin si
    A priori, les exceptions devraient être réduites et tu pourrais tomber dans un cas ou seuls les noms de famille sont composés (en général, le prénom contient un trait d'union)

    Si c'est le cas tu peux reprogrammer un seul algorithme (YOLO) de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    explode sur l'espace
    Si count = 2 cas général (nom, prénom)
    Sinon si count > 2 
        prenom = $tab[0]
        nom = join($tab[1] à count($tab) )
    Sinon
        nom = $tab[0]  // on suppose qu'on a que le nom de famille
    Fin si

  4. #4
    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
    Je ne vois qu'une solution, qui implique que tu puisses t'adresser à la personne qui produit le CSV.

    1) Séparer les 2 champs bien sûr
    2) Ou bien obtenir ça Bilhel BEN ABDELLAH; Anna Lisa FERREIRA;

    Et parcourir ta chaîne en t'aidant de la table ASCII pour voir ce qui est tout en maj (nom) ou ce qui contient au moins un min (prénom).

    3) Si le CSV ne peut pas bouger, tu ne peux rien faire d'autre que de mettre une seule colonne dans ton tableau ! Pour les mêmes raisons que tu ne peux pas reconstituer 6 oeufs après les avoir battus.

    Personne
    Bilhel Ben Abdellah

    je sais qu'il faut éviter les espaces en programmation web
    Je ne suis pas d'accord avec cette phrase, dite comme une généralité.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Dendrite Voir le message
    Je ne suis pas d'accord avec cette phrase, dite comme une généralité.
    Ce que je voulais dire en fait, "je sais qu'il faut éviter les espaces en programmation web dans les noms de variable".

    J'essaye de trouver une solution sans modifier le format des CSV. En fait, dans le CSV, le prénom et le nom sont bien séparés. C'est moi qui les regroupe dans le code car je fais un select où l'utilisateur doit choisir une personne (prenom nom) et la valeur sélectionnée par l'utilisateur et transmise à l'action du formulaire qui contient le formulaire ne peut être qu'une chaîne de caractères : <option value="<?= $one_user[0]." ".$one_user[1]." ".count(explode(' ',$one_user[0]))." ".count(explode(' ',$one_user[1])) ?>"><?= $one_user[0]." ".$one_user[1] ?></option>Les 2 compteurs que je passe à l'action du formulaire, c'est le nombre de mots du prénom et du nom.

    Voici comment j'extrais nom et prénom dans l'action :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            $user=explode(' ',$_POST['list']); 
            $size=count($user);
            $size_firstname=$user[$size-2]; 
            $size_lastname=$user[$size-1];
            $firstname='';
            for ($i=0;$i<$size_firstname;$i++) $firstname.=$user[$i].' ';
            $firstname=trim($firstname); 
            $init=$i;
            $lastname='';
            for ($i=$init;$i<$size_firstname+$size_lastname;$i++) $lastname.=$user[$i].' ';
            $lastname=trim($lastname);
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Comment sont réutilisée ses infos de nom/prénom ?

    Parce que un cas "simple" peut être de dire , si j'ai 2 valeurs , je divise forcément dans nom/prenom je suis capable de faire la différence. Sinon je colle tout dans nom (et donc pas de prénom).

    Comme très souvent ces informations de nom/prénom sont utilisées ensemble lors d'un affichage ou un publipostage on ne verra pas la différence si le prénom est rempli ou non
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Désolé, mais je ne suis pas.
    Tout ce que je peux dire, c'est que la sélection "prénom/nom" sert à choisir la personne de laquelle on va chercher des informations en bdd pour les afficher.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            $extract_data=new License2();
            $sesa=$extract_data->GetSesaFromUser($firstname,$lastname);  
            $extract_data->extract_data($sesa);
    $sesa, c'est un identifiant.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #8
    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
    Ce que je voulais dire en fait, "je sais qu'il faut éviter les espaces en programmation web dans les noms de variable".
    Il ne faut pas éviter, c'est juste impossible. Mais ici, ça n'est pas ton problème. Tu n'as pas de $ma variable ?



    En fait, dans le CSV, le prénom et le nom sont bien séparés. C'est moi qui les regroupe dans le code car je fais un select où l'utilisateur doit choisir une personne (prenom nom) et la valeur sélectionnée par l'utilisateur et transmise à l'action du formulaire qui contient le formulaire ne peut être qu'une chaîne de caractères :
    Mais pourquoi tu ne mets pas un séparateur dans ta value alors ? Genre un triple ### ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="<?= $one_user[0]."###".$one_user[1].">"><?= $one_user[0]." ".$one_user[1] ?></option>
    Et tu n'as plus qu'à exploder sur le triple dièse... J'ai du rater un truc ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  9. #9
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    Bonsoir

    Si j'ai bien compris, tu as construit un formulaire en PHP qui affiche une liste noms/prénoms puis tu soumets le formulaire et tu souhaites traiter correctement en PHP la personne ayant été sélectionnée.

    Si c'est bien ça, tu ne dois pas utiliser le prénom/nom dans ton formulaire mais un quelconque ID : si tu as une valeur permettant de différencier un utilisateur (son numéro de registre national, un numéro de client, un numéro d'employé, ...), utilise cette valeur. Sinon, si tes valeurs sont dans une table, crée une clef primaire (un autonumber fait parfaitement l'affaire) et c'est cette valeur que tu dois utiliser.

    Selon moi, à aucun moment, il ne faudrait utiliser les variables firstname/lastname dans ton retour du formulaire.

    Bonne soirée.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  10. #10
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 184
    Points
    17 184
    Par défaut
    Citation Envoyé par cavo789 Voir le message
    Bonsoir
    ......
    Selon moi, à aucun moment, il ne faudrait utiliser les variables firstname/lastname dans ton retour du formulaire.
    .....
    Surtout qu'un homonyme peut très bien arriver, même sur une petite structure, j'ai connu le cas pour une petite entreprise de 17 employés avec pourtant 2 homonymes, 2 fois 2 personnes de même nom et prénom de même orthographe.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  11. #11
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Bonsoir,
    merci pour vos réponses, Dendrite, cavo789 et ProgElecT. OK pour que la valeur transmise à l'action du formulaire soit un identifiant et pas le couple prénom/nom. Cela dit, il y a 2 formulaires :
    - un pour sélectionner une application parmi plusieurs applis ;
    - un second pour sélectionner un utilisateur parmi les utilisateurs de l'application sélectionnée.
    Dans l'action du premier, on transmet au second formulaire un tableau contenant la liste des utilisateurs de l'application que l'on vient de sélectionner. Comme ce tableau contient ce qui va être affiché par le second formulaire (sous forme de select), bien obligé de transmettre prénom-nom, non ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  12. #12
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    Nous sommes bien d'accord : la liste des personnes de trouve en base de données ? Si oui alors notre suggestion garde sa pertinence ; ton premier formulaire soumets une liste d'identifiants et to'sur script php qui prépare le second formulaire récupère la liste des valeurs dans la db pour le second formulaire.

    Bonne soirée
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  13. #13
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 184
    Points
    17 184
    Par défaut
    Salut

    Il te faut mémoriser le numéro d'ordre des utilisateurs de ton formulaire qui lit une première fois ton fichier CSV.
    Le numéro correspondant à l'ordre chronologique de lecture du dit fichier CSV, donc égal au numéro X du select.option de la liste,
    avec celui-ci tu lis à nouveau le CSV juste qu'a atteindre le groupe numéro X, et tu récupéres les éléments voulues.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  14. #14
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 382
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Merci cavo789 et ProgElecT pour vos suggestions, sauf que je n’accroche à aucune des 2…

    Citation Envoyé par cavo789 Voir le message
    ton premier formulaire soumets une liste d'identifiants
    Autrement dit, le second formulaire va afficher cette liste d’identifiants, ce qui n’est pas parlant du tout…

    @ProgElecT : les fichiers CSV ne sont jamais lus par les utilisateurs présents dans la liste car ceux qui produisent les CSV et ceux qui les lisent ne sont pas les mêmes personnes.

    Je décoche provisoirement le .

    Je pense que le mieux est de donner en détail la solution existante, sachant que la solution retenue devra avoir un comportement similaire.

    Tout d’abord, on suppose que les fichiers CSV sont déjà lues et que donc la bdd est déjà alimentée.
    Il y a 5 tables (application, country, license, location et user). Je donne ici que la structure de user, mais les informations à afficher sont dans les 5 tables.
    user :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
      `user_key` smallint NOT NULL AUTO_INCREMENT,
      `sesa` int DEFAULT NULL,
      `lastname` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
      `firstname` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
      `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
      `company` varchar(50) COLLATE utf8_bin DEFAULT NULL,
      `buunitname` varchar(50) COLLATE utf8_bin DEFAULT NULL,
      `location` varchar(50) COLLATE utf8_bin DEFAULT NULL,
      `manager_key` smallint DEFAULT NULL,
      PRIMARY KEY (`user_key`),
      UNIQUE KEY `sesa_UNIQUE` (`sesa`)
    ) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


    Donc lastname et firstname sont bien dans la bdd, mais on a aussi un identifiant (colonne sesa).
    Ensuite le code PHP.

    Pour l’affichage, j’utilise le classe PhpEcho de rawsrc. Et j’utilise une structure MVC.

    DispListApp.php (formulaire affichant la liste des applications)
    Code html+php : 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
    <form method="post" action=" ?action=DispListApp">
        <select name="list" onChange="this.parentNode.submit()"> <!-- sélectionner une valeur va déclencher l'action du
        formulaire qui contient le select, donc lancer ticket_rawsrc\controller\license\LDispListApp  -->
            <option value="">Please select an application</option>
        <?php
        if (empty($this['list']))
        { ?>
            <option value=""><?= "No application" ?></option>
            <?php
        }
        else
        {
            foreach ($this['list'] as  $app) /*$this['list'] est un tableau contenant la liste des applications */
            {
                ?>
                <option value="<?= $app['application_name'] ?>">
                    <?= $app['application_name'] ?>
                </option>
                <?php
            }
        }
        ?>
        </select>
    </form>


    Action du formulaire : LDispListApp.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $user_for_appli=new LSelectInBDD();
    $user=$user_for_appli->getUserLicenseFromAppliKey($_POST['list']); //la liste des users (firstname, lastname)
    // qui ont une licence pour cette application
    //appeler via PhpEcho un fichier à qui on passe $user et qui fait un select
    $page = new PhpEcho([DIR_ROOT, 'view Layout.php']);
    include(dirname(dirname(__DIR__)).'\view\addchild_nav.php'); //affichage du menu
    $page->addChild('body','License DispLselectUserForAnAppli.php',['user'=>$user]); //form select liste des
    // users avec action : " ?action=DispInfoLicenseBySelectForAnAppli"
    echo $page;


    Ce contrôleur lance la vue suivante : DispLselectUserForAnAppli.php : (G adopté la méthode que me conseillait Dendrite au post #8 (séparateur ###))

    Code html+php : 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
    <form method="post" action=" ?action=DispInfoLicenseBySelectForAnAppli">
        <select name="list" onChange="this.parentNode.submit()">
            <option value="">Please select a user</option>
        <?php
        if (empty($this['user']))
        { ?>
            <option value=""><?= "No user" ?></option>
            <?php
        }
        else
        {
            foreach ($this['user']  as    $one_user)
            {
                ?>
                <option value="<?= $one_user[0]."###".$one_user[1]  ?>"><?=
                    $one_user[0]." ".$one_user[1] ?></option>
                <?php
            }
        }
        ?>
        </select>
    </form>


    Action de ce formulaire (LDispInfoLicenseBySelectForAnAppli.php)

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     if (empty($_POST['list'])) exit;
          $user=explode('###',$_POST['list']);
          $firstname=$user[0];
          $lastname=$user[1];
     
          $extract_data=new License2();
          $sesa=$extract_data->GetSesaFromUser($firstname,$lastname);  /*récupérer $sesa à partir de $firstname et $lastname */
          $extract_data->extract_data($sesa);   
     
          $data_to_display=$extract_data->SendDataToDisplay();
     
          $view_license=new License();
          $view_license->LDispInfo($data_to_display);
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

Discussions similaires

  1. espaces qui apparaîssent de nul part dans des fichiers C#
    Par olivier57b dans le forum Visual Studio
    Réponses: 0
    Dernier message: 05/06/2020, 16h09
  2. Espaces qui se créent &NBSP
    Par danette59 dans le forum Langage
    Réponses: 0
    Dernier message: 30/12/2014, 17h30
  3. [script.aculo.us] Ajax.Autocompleter et les espaces qui sautent avec IE
    Par lionheart33806 dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 01/09/2008, 15h30
  4. Espace qui disparaissent selon serveur IIS !
    Par scortex84 dans le forum ASP
    Réponses: 1
    Dernier message: 19/07/2006, 08h35
  5. probleme d'espace qui fausse une jointure
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/08/2004, 11h52

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