Partage
  • Partager sur Facebook
  • Partager sur Twitter

Auto-génération de page

Sujet résolu
    7 août 2018 à 7:22:18

    Bonjour à tous,

    Je suis débutant chevronné en programmation et je code pour le moment en HTML, PHP, MySQL.

    Je suis à la recherche d'une manière de pouvoir créer une page HTML 'fixe' sur laquelle un utilisateur lambda n'ayant aucune connaissance en programmation puisse créer d'autre page (par exemple: sur la page d'un certain M. X, il aimerait avoir 3 <label> avec son texte, 2 <input> format texte et un bouton 'submit' de couleur bleue. Alors que M. Y aimerait avoir 1 seul <label>, 5 <input>, 1 <img> et 1 bouton 'submit' gris.)

    Je ne cherche pas des lignes de codes mais plutôt une méthode de faire. J'avais dans l'idée une page contenant des <input> et en fonction des nombres, créer le nombre de <label> par exemple. Mais j'ignore par où commencer et où chercher. Je pense que je devrais aussi utiliser du <script> pour ce cas précis :lol:

    Je suis sans doute passé au-dessus de certaines explications lors de mes recherches.

    J'espère que mon explication est suffisamment claire, à vrai dire, ça me parait compliqué mais j'aime les défis :D

    Merci et bonne journée :)

    • Partager sur Facebook
    • Partager sur Twitter
    Pourquoi faire simple quand on peut faire compliqué?
      7 août 2018 à 9:30:09

      Bonjour,

      J'avoue que c'est un peu flou pour moi. C'est quoi une page html fixe ? Et quel est le résultat attendu, tu parles d'affichage ou de génération de fichier ?

      • Partager sur Facebook
      • Partager sur Twitter
        7 août 2018 à 9:52:33

        En fait j'entends par page fixe une page du type :

        <form action="#" method="post">
        	<div class="panel col-md-6 col-md-offset-3"> 
        		<div class="panel panel-default">
        			<div class="panel-body">
        				<label for="lb">Number of label</label></br>
        				<input type="text" name="lbl1"></br>
        				<label for="inp">Number of input</label></br>
        				<input type="text" name="inp1"></br>
        				<label for="img">Number of image</label></br>
        				<input type="text" name="img1"></br>
        				<label for="sub">Number of submit</label></br>
        				<input type="text" name="sub1"></br>
        				<input type="submit" name="submit" value="Create">
        			</div>
        		</div>
        	</div>
        </form>

        Qui sera la même pour toutes les personnes.

        Cette page va permettre de créer des fichiers avec à l'intérieur, par exemple, un certain nombre  de <label> (par exemple 3), un certain nombre d'<input> (par exemple 8) etc...

        J'attends comme résultat une création de page .php contenant exactement ce que l'utilisateur voulait (dans ce cas ci 3 label et 8 input) lié à une base de donnée mysql (qui soit dit en passant devrait aussi créer une nouvelle table dédiée à cette page mais j'ai compris ce coté là ;))

        La partie où je bloque est la partie 'Création de fichier .php' dans mon dossier, je sais visualiser le résultat grâce à :

        <form action="#" method="post">
        	<div class="panel col-md-6 col-md-offset-3"> 
        		<div class="panel panel-default">
        			<div class="panel-body">
        				<?php foreach ($model as $item): ?>
        					<label for="lb" style="text-decoration: underline;">ID</label></br>
        					<label for="lbval"><?php echo $item->GEN_ID; ?></label></br>
        					<label for="lb">Number of label</label></br>
        					<label for="lbval"><?php echo $item->NB_LABEL; ?></label></br>
        					<label for="inp">Number of input</label></br>
        					<label for="lbval"><?php echo $item->NB_INPUT; ?></label></br>
        					<label for="img">Number of image</label></br>
        					<label for="lbval"><?php echo $item->NB_IMG; ?></label></br>
        					<label for="sub">Number of submit</label></br>
        					<label for="lbval"><?php echo $item->NB_SUBMIT; ?></label></br>
        					<p style="border-top: 3px solid #C0C0C0;"></p>
        				<?php endforeach ?>
        			</div>
        		</div>
        	</div>
        </form>

        avec derrière un:

        try {
        			global $pdo;
        			$query1 = $pdo->prepare("SELECT * FROM rootpage");
        			$query1->execute();
        			$model = [];
        			while ($ligne = $query1->fetch(PDO::FETCH_OBJ)) {
        				$model[] = $ligne;
        			}
        
        		} catch (Exception $e) {
        			
        		}
        		include("view.php");

        mais pas la création.

        J'espère ne pas m'être perdu et avoir été assez clair dans mon explication. C'est quelques chose que je visualise assez bien mais qui me semble compliqué à expliquer... o_O

        Merci



        • Partager sur Facebook
        • Partager sur Twitter
        Pourquoi faire simple quand on peut faire compliqué?
          7 août 2018 à 9:56:28

          Alors déjà, je propose qu'on arrête d'utiliser le HTML n'importe comment. Les input et label c'est fait pour des formulaires. Ce que tu veux faire, avoir une page avec du contenu différent selon une url ou autre chose, ça se fait avec une base de données. Très mauvaise idée de générer des fichiers PHP supplémentaires quand un seul suffit avec une base de données derrière pour l'alimenter.
          • Partager sur Facebook
          • Partager sur Twitter
          /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
            7 août 2018 à 10:07:52

            Je pense avoir saisi l'idée, merci! :)

            Donc utiliser une DB 'extensible' (et par extensible, j'entends suffisamment grande pour dire de pouvoir développer au moins 10 points différents comme 10 label, 10 input ...) alimentée par un formulaire et possédant son propre ID pointant vers l'ID unique de ma DB.

            Une page de vue qui se rempli grâce à un 'foreach' en allant chercher les infos dans ma DB.

            C'est bien dans ce sens que tu l'entend? :)

            Je vais essayer ça et clôturerai le sujet une fois résolu ;)

            • Partager sur Facebook
            • Partager sur Twitter
            Pourquoi faire simple quand on peut faire compliqué?
              7 août 2018 à 10:17:35

              Mais...mais de quoi tu parles? J'ai l'impression que les bases de données relationnelles ne sont pas encore une notion que tu maitrises parfaitement :euh:

              Je ne suis même pas certain de comprendre ce que tu cherches à faire...

              Je ne vois pas ce que tu veux dire par "extensible", une db c'est conçu pour supporter des milliers d'entrées dans des tables grandes s'il le faut. Mais tu n'as pas besoin d'une grande table pour ce que tu sembles vouloir faire.

              -
              Edité par Genroa 7 août 2018 à 10:19:39

              • Partager sur Facebook
              • Partager sur Twitter
              /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
                7 août 2018 à 10:31:05

                Non, tu as bien raison, je ne programme que depuis 1 mois ... (je vais me replonger dans les cours, ça me permettra de voir plus précisément ce dont j'ai besoin).

                En fait, je suis en train de faire une interface pour avoir accès à une base de donnée relativement simple.

                Cette interface doit permettre à ce qu'un utilisateur lambda sans aucune connaissance en programmation puisse ajouter une page dans cette interface.

                En gros, replacer le programmeur qui créé de nouvelles pages de cette interface par un genre de générateur de page pour mon interface. Un peu comme si je créais un squelette et que chaque utilisateur venait mettre son petit organe avec la fonction qu'il choisi. Le tout sans avoir de notion de biologie.  Pour qu'à la fin, la totalité des utilisateurs puisse avoir accès à cet organe. (oups... je vais peut-être loin dans mon analogie là...).

                J'espère que c'est un peu plus clair? :)

                ps: si jamais je mettrais ce post en suspend le temps de refaire le tour dans les cours.... :)

                • Partager sur Facebook
                • Partager sur Twitter
                Pourquoi faire simple quand on peut faire compliqué?
                  7 août 2018 à 10:32:11

                  Tu veux réécrire un CMS de zéro à la main, quoi. C'est ça l'idée?
                  • Partager sur Facebook
                  • Partager sur Twitter
                  /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
                    7 août 2018 à 10:47:54

                    Je ne connaissais pas le CMS mais c'est tout à fait ce que je cherchais, merci :)

                    Je vais me plonger dans le cours alors :lol:

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Pourquoi faire simple quand on peut faire compliqué?
                      7 août 2018 à 10:50:43

                      Un CMS ou "content management system", système de gestion de contenu, c'est ce principe. Tu as défini des pages, catégories, etc, et tu peux créer des contenus dessus. C'est un peu l'évolution moderne du blog, sous stéroïdes. WordPress est le représentant le plus connu, mais il y en a plein d'autres plus simples.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
                        7 août 2018 à 11:05:41

                        D'après ce que je comprends, tu veux plutôt avoir un page html "flexible" en fonction de l'utilisateur.

                        S'il s'agit juste du nombre d'inputs pour chaque utilisateur, tu peux en effet le mémoriser en BDD et générer le formulaire en conséquence en Php.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          7 août 2018 à 11:34:00

                          Le CMS m'a l'air très intéressant et je pense partir là dessus après apprentissage :)

                          Je vais aussi suivre ton idée philodick pour d'autres pages

                          Encore merci pour les pistes, je passe le sujet en résolu.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Pourquoi faire simple quand on peut faire compliqué?

                          Auto-génération de page

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown