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

MkFramework Discussion :

Création de plusieurs enregistrements sur une vue


Sujet :

MkFramework

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut Création de plusieurs enregistrements sur une vue
    Bonjour à tous,

    j'aimerais savoir si MkFramework prend en compte la situation suivante:
    J'ai une table 'Langue' dans ma base avec 2 attributs 'libelléLangue' et 'niveauLangue'.
    Dans le module 'langues' j'ai la vue 'new' où il n'est possible d'ajouter qu'un seul enregistrement dans la table.

    J'aimerais pouvoir en ajouter plusieurs d'un coup, c'est à dire avoir sur la même vue un bouton 'Autre langue'. Le clic sur ce dernier permettra de renseigner une nouvelle langue avec son niveau, et ainsi de suite autant de fois que l'utilisateur voudra ajouter de langue.
    J'ai pensé à cela afin d'éviter de charger N fois la page 'langues::new' si l'on doit renseigner N langues.

    Y a t-il une possibilité de faire cela?Merci d'avance.

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Vous pouvez faire plusieurs choses:
    - utiliser un module CRUD intégrable
    - passer par un CRUD multi ligne
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    J'ai décidé de tester donc le crud multi ligne. je remarque que cela n'agit que sur la modification multi-ligne. De mon coté j'aimerais que ce soit dans la vue 'new' qu'on ait la possibilité de créer plusieurs enregistrements du'un seul coup. Puis-je modifier le module? et comment?

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Je pense que l'on peut modifier le module pour mettre dans le tableau d'edition des lignes "vide" qui serviront à ajouter des nouveaux enregistrements
    Je regarde pour faire une modif de l'existant ou un tuto dans la semaine
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    A la base j'ai un formulaire pour ajouter une nouvelle langue:

    Nom : Capture.PNG
Affichages : 201
Taille : 7,3 Ko
    J'aimerais de transformer en ajoutant en dessous un bouton 'Autre langue'. Lors du clic sur ce bouton on a une nouvelle ligne qui s'ajoute à ce formulaire langues::new.

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Oui, je vois bien l'idée, je pense qu'en javascript on peut faire un truc sympa dans le module via le builder (automatique, c'est plus pratique)
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    Je suis toujours à l'ouest. Javascript? Quelle partie du builder me permet ça? Je ne vois toujours pas comment réaliser cela!

  8. #8
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Non actuellemnet le CRUD multi le permet pas, je vais ajouter la possibilité
    ou écrire un tuto pour le permettre
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  9. #9
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    alors là oui tu me sauverais énormément, un tuto pour l'instant me satisfairait.

  10. #10
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Bonsoir,

    Alors voila: générer un CRUD multi ligne, une fois faite, il faut modifier les choses suivantes:

    Fichier main.php , méthode processListSaveMulti()
    On remplace:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		$tId=_root::getParam('id',null);
    		foreach($tId as $key => $id){
     
    			$oAuteur=model_auteur::getInstance()->findById($id);
    par
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $tId=_root::getParam('id',null);
    		foreach($tId as $key => $id){
    			if($id){
    				$oAuteur=model_auteur::getInstance()->findById($id);
    			}else{
    				$oAuteur=new row_auteur();
    			}

    Ensuite le plugin plugin_formMultiRow
    remplacez:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	public function add($oObject){
    		$this->i++;
    		$this->tObject[$this->i]=$oObject;
    	}
    par
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	public function add($oObject){
    		$this->i++;
    		if($oObject==null){
    			$this->i=null;
    		}
    		$this->tObject[$this->i]=$oObject;
    	}

    Enfin la vue change un peu pour permettre d'ajouter des lignes
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  11. #11
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    En haut de la vue editList.php
    Ajoutez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script>
    function add(){
    	var a=getById('body');
    	var newline=getById('newline');
    	if(a){
    		a.innerHTML+=newline.innerHTML;
    	}
    }
    </script>
    Puis avant la fin du tableau html
    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
    <tbody id="body">
    	<tr id="newline">
    		<?php $oForm->add(null)?>
    		<td><?php echo $oForm->getInputText('nom') ?></td>
     
    		<td><?php echo $oForm->getInputText('prenom') ?></td>
     
    		<td>
     
    				<?php echo $oForm->getInputHidden('id')?>
    		</td>
    	</tr>
     
    	</tbody>
    </table>
    Il faut pour etre exact copier votre ligne tr / td comprise dans la boucle foreach, ce qui est important ici c'est qu'à l'appel de la méthode add() on envoi null pour indiquer que c'est une ligne vide

    Enfin dernière chose: remplacez le bouton d'ajout par (bouton qui appellera la fonction add())
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" onclick="add()" value="New"/>
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  12. #12
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    Bonjour,

    Désolée pour cette semaine d'inactivité. J'ai exploité la piste que tu m'a donné, en effet j'ai bel et bien le bouton me permettant d'ajouter une nouvelle ligne
    Par contre à chaque fois que je clique dessus, les lignes précédemment ajoutées sont remises à zéro (leur contenu se vide).

    PS: il n'y a donc plus de bouton sur le formulaire pour soumettre l'ensemble des lignes ajoutées?
    Si je fais ça dans la vue 'new.php' et non dans la vue 'editList.php' le fonctionnement sera t-il pareil?
    Merci d'avance

  13. #13
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Oui pour la remise à zéro c'est du à l'utilisation du innerHtml, il y a une autre solution en Javascript pour conserver le texte saisi avec appendChild

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <script>
    function add(){
            var a=getById('body');
            var oNewline=getById('newline');
     
            var oTr=document.createElement('tr')
            oTr.innerHTML=oNewline.innerHTML;
     
            if(a){
                    a.appendChild(oTr);
                    console.log('append oTr');
            }
    }
    </script>
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  14. #14
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    Bonjour,

    Juste une petite parenthèse. Ce matin je veux accéder à la vue module/candidatsLangues/view/new.php, alors je marque dans l'url ceci:
    public/index.php?:nav=candidatsLangues::new
    Et j'ai l'erreur suivante:
    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
     
    vue ../module/candidats_langues/view/new.php et ../module/candidats_langues/view/new.php inexistant
    #0 C:\xampp\htdocs\MKF\lib\framework\class_view.php(48): _view->choose('../module/candi...')
    #1 C:\xampp\htdocs\MKF\data\genere\e-tmg\module\candidatsLangues\main.php(55): _view->__construct('candidats_langu...')
    #2 C:\xampp\htdocs\MKF\lib\framework\class_root.php(263): module_candidatsLangues->_new()
    #3 C:\xampp\htdocs\MKF\data\genere\e-tmg\public\index.php(47): _root->run()
    #4 {main}
     
    Detail:
    #0 C:\xampp\htdocs\MKF\lib\framework\class_view.php (48) 
    _view -> choose( '../module/candidats_langues/view/new.php' ) 
    #1 C:\xampp\htdocs\MKF\data\genere\e-tmg\module\candidatsLangues\main.php (55) 
    _view -> __construct( 'candidats_langues::new' ) 
    #2 C:\xampp\htdocs\MKF\lib\framework\class_root.php (263) 
    module_candidatsLangues -> _new( ) 
    #3 C:\xampp\htdocs\MKF\data\genere\e-tmg\public\index.php (47) 
    _root -> run( ) 
    #4 {main}
    Fichier : C:\xampp\htdocs\MKF\lib\framework\class_view.php ligne 111
     
    Message : vue ../module/candidats_langues/view/new.php et ../module/candidats_langues/view/new.php inexistant
    Pourtant quand c'est ceci tout se passe bien:
    public/index.php?:nav=candidatsLangues::editList
    Quel est le problème? Je précise que c'est un module CRUD multi-ligne généré par le builder.

  15. #15
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Bonjour,
    Je viens de tester avec la dernière version du framework: j'ai généré un crud multi-ligne, et j'ai bien ma vue view/new.php
    On ne parle pas ici du module CRUD modifié ici ensemble ?, celui ou on a ajouté le fait d'avoir un bouton pour ajouter dans la page une ligne ?

    Dans ce cas, il n'y a plus besoin de ce formulaire d'ajout puisqu'on fait cet ajout dans la même page

    Vous pouvez via le builder regénérer un crud multi-ligne pour récupérer cette vue new.php (pour la copier ensuite sur ce module) si besoin
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  16. #16
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    On ne parle pas ici du module CRUD modifié ici ensemble ?, celui ou on a ajouté le fait d'avoir un bouton pour ajouter dans la page une ligne ?
    Oui c'est bien de celui là que je parle. Je voulais tester la création multi ligne uniquement dans la vue 'new' car dans la vue 'editList' ce sont tous les enregistrements présents dans la table que je modifie. Ce qui n'est pas prudent selon moi.
    Pourquoi MKF n'arrive t-il pas à voir le chemin de la vue que je lui indique? (regarde la stacktrace, la vue que va rechercher MKF n'est pas celle que je lui demande d'afficher)
    je demande le module 'candidatsLangues' et il va chercher le module 'candidats_langues'

  17. #17
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Il faut regarder dans votre code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    module\candidatsLangues\main.php(55)
    Le framework ne "déduit" pas le chemin des vues: c'est vous qui l'indiquez dans le code:

    Lorsque l'on fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $oView=new _view('monModule::maVue');
    Il va chercher module/monModule/view/maVue.php
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  18. #18
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Pour votre module CRUD multi-ligne modifié, il me semble que dans nos échanges je vous ai demandé de supprimer la vue en question, jugée inutile puisqu'on a modifier le lien "new" en bouton "new" qui ajoute une ligne dans le tableau
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  19. #19
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    Ah oui ok, désolée de te déranger de si bon matin. J'ai vue mon erreur. Pour faire simple j'ai supprimé ce module et j'ai regenéré un nouveau avec un nom sans underscore. je vais reprendre dans ce module les changements que tu m'as indiqué hier (mais plutot dans la vue 'new') et voir ce que ça donne. Merci encore

  20. #20
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Oki pas de soucis
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. [AC-2007] Plusieurs enregistrements sur une même page d'un formulaire
    Par Triton972 dans le forum IHM
    Réponses: 3
    Dernier message: 16/10/2011, 16h00
  2. Réponses: 3
    Dernier message: 06/01/2011, 22h17
  3. [AC-2000] obtenir plusieurs enregistrements sur une même ligne
    Par woant dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/05/2009, 17h31
  4. concaténer plusieurs enregistrements sur une colonne
    Par pierre22 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 10/09/2007, 19h26
  5. Réponses: 3
    Dernier message: 20/05/2007, 23h41

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