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 :

Fprmulaire : update sur plusieurs lignes d'une table en un seul POST


Sujet :

MkFramework

  1. #1
    Membre à l'essai
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 14
    Points
    14
    Par défaut Fprmulaire : update sur plusieurs lignes d'une table en un seul POST
    Bonjour,

    J'ai encore besoin de votre aide
    Mon application consiste à loguer les retours sav de différents produits.
    J'ai créé un module qui peut ajouter/modifier/supprimer des lignes d'historique pour chaque n° de série de produit unitairement (jusque là pas de pb).
    Etant donné que ma base gère des produits différents, et donc des accessoires différents, j'ai une table qui gère les accessoires manquants lié à chaque retour sav.

    Mon pb : je suis sur ma page Edit de mon historique d'un produit, j'arrive à afficher dans mon formulaire ma table serie_detail_accessory lié à ce retour sav.
    Mais lors du POST, il ne garde que la dernière ligne (forcément car les champs ont le même nom) => comment enregistrer dans le POST chaque ligne avec l'id de serie_detail_accessory pour pouvoir les traiter l'update dans le fichier main ?

    Voici le code qui affiche cette partie du formulaire :
    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
     
    if($this->oSerie_detail_accessory){		
    	echo '<div class="col-md-12"><table class="table table-striped table-condensed">
    		<tr>
    			<td>line_id</td>
    			<td>accessory_id</td>
    			<td>Accessoires</td>
    			<td>Ok</td>
    			<td>Remarques</td>
    		</tr>';
     
    	foreach($this->oSerie_detail_accessory as $oSerie_detail_accessory){
     
    		$oFormAcc[$oSerie_detail_accessory->line_id]=new plugin_form($oSerie_detail_accessory);
    		$oFormAcc[$oSerie_detail_accessory->line_id]->setMessage($this->tMessage);
    		echo '
    			<tr>
    				<td>'.$oSerie_detail_accessory->line_id.'</td>
    				<td>'.$oSerie_detail_accessory->accessory_id.'</td>
    				<td>'.$oSerie_detail_accessory->accessory.'</td>
    				<td>'.$oFormAcc[$oSerie_detail_accessory->line_id]->getInputCheckbox('ok',1).'</td>
    				<td>'.$oFormAcc[$oSerie_detail_accessory->line_id]->getInputText('remarque',array('class'=>'form-control')).'</td>
    			</tr>';
    	}
    	echo '</table></div>' ;
    } else { 	echo '</br><div>Aucun accessoire<br/></br>'; }
    D'avance merci pour votre précieuse aide.

  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 ne pouvez pas utiliser le mode "normal" du CRUD: a savoir
    - un tableau listant les enregistrements
    - un lien sur charque ligne qui appelle une page de modification/suppression d'un enregistrement

    ce modèle ne vous convient pas ?

    Une autre alternative peut etre de garder un tableau, et à l'aide d'un bouton passer la ligne en modiciation

    enfin la dernière idée serait de générer un CRUD guriddo, visible ici: http://mkframework.com/tutoriaux.html#crudguriddo
    Nom : builder_blog_crudguriddo11.png
Affichages : 169
Taille : 18,2 Ko
    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 à l'essai
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    C'est ce que je ferai si je ne trouve pas d'autres solutions, mais ce n'est pas idéal car cela est plus long que de modifier tous les libellés et de valider en une fois ...

  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
    Il y a une solution pour votre besoin, mais sans le plugin_form non prévu à cet effet, je travaillerai plus tard sur un plugin multi formulaire.

    En attendant pour votre besoin:

    Dans votre vue:
    Code 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
    25
    26
     
    if($this->oSerie_detail_accessory){		
    	echo '<div class="col-md-12"><table class="table table-striped table-condensed">
    		<tr>
    			<td>line_id</td>
    			<td>accessory_id</td>
    			<td>Accessoires</td>
    			<td>Ok</td>
    			<td>Remarques</td>
    		</tr>';
     
    	foreach($this->oSerie_detail_accessory as $oSerie_detail_accessory){
     
    		$id=$oSerie_detail_accessory->line_id;
     
    		echo '
    			<tr>
    				<td><input type="hidden" name="tLine_id['.$id.']" value="'.$id.'"/>'.$id.'</td>
    				<td>'.$oSerie_detail_accessory->accessory_id.'</td>
    				<td>'.$oSerie_detail_accessory->accessory.'</td>
    				<td><input type="checkbox" name="tOk['.$id.']" value="1"/></td>
    				<td><input type="text" name="tRemarque['.$id.']" value="'.$oSerie_detail_accessory->remarque.'"/></td>
    			</tr>';
    	}
    	echo '</table></div>' ;
    } else { 	echo '</br><div>Aucun accessoire<br/></br>'; }

    Et dans votre fichier main.php, dans la partie traitement:
    Code 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
     
    $tId=_root::getParam('tLine_id');
    $tOk=_root::getParam('tOk');
    $tRemarque=_root::getParam('tRemarque');
     
    foreach($tId as $key => $id){
    		//recuperation de l'enregistrement
    		$oSerieDetail=model_SerieDetail::getInstance()->findById($id);
    		if(isset($tOk[$key])){
    			$oSerieDetail->ok=$tOk[$key];
    		}
    		$oSerieDetail->remarque=$tRemarque[$key];
    		$oSerieDetail->save();
     
    }

    Attention : pour cette ligne, c'est un exemple: je ne connais pas vos classes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $oSerieDetail=model_SerieDetail::getInstance()->findById($id);
    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 à l'essai
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Merci bcp pour tout ce code !
    Pour le cas des accessoires, je pense que je vais modifier la structure de la BDD qui n'est pas très optimisé.
    Mais du coup je vais pouvoir utiliser cette solution sur un autre sujet pour faciliter l'enregistrements dans une autre table =)
    Mille mercis pour pour votre aide et votre réactivité !

  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
    Merci beaucoup à vous, vos questions et demandes permettent d'améliorer sans cesse ce framework.

    Je rappelle qu'il est disponible et évolue sur developpez depuis 2009, le seul framework rétrocompatible depuis aussi longtemps

    N'hésitez pas à en faire la promotion, ce framework reste peu connu, et plus il sera utilisé plus il s'améliorera (la puissance de l'opensource)
    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 à l'essai
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    Comptez sur moi pour en faire la promo !
    J'ai déjà fait la pub à une asso qui souhaitait faire un petit applicatif de gestion
    Cet outil est vraiment formidable ... et l'investissement en vaut la peine vu les résultats qu'on peut en obtenir en si peu de temps.

    Encore merci pour ce forum qui nous est vraiment utile !

    A bientôt.

  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
    Merci beaucoup, pour le forum c'est dvp qu'il faut remercier

    Comme indiqué précédemment je travaille en parallèle sur un plugin multi ligne, ça avance bien je pense pouvoir l'intégrer dans le builder 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

  9. #9
    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
    Solution CRUD multi-ligne désormais disponible dans le builder
    http://mkframework.com/telecharger.html
    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.

Discussions similaires

  1. Réponses: 12
    Dernier message: 13/05/2014, 23h05
  2. update sur plusieurs lignes avec table temporaire
    Par -=mateo=- dans le forum SQL
    Réponses: 3
    Dernier message: 23/12/2010, 14h40
  3. Texte sur plusieurs lignes dans une cellule de JTable
    Par JeanECN dans le forum Composants
    Réponses: 3
    Dernier message: 10/04/2006, 17h20
  4. Mettre a jour plusieurs lignes d'une table
    Par Tartenpion dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/12/2005, 18h50
  5. Procédure stockée - Retourner plusieurs ligne d'une table
    Par ronando dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 02/11/2005, 13h19

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