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

Symfony PHP Discussion :

setTemplate après insertion [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 75
    Par défaut setTemplate après insertion
    bonjour,

    j'ai une action d'ajout d'attribut qui fonctionne, je souhaite suite à l'enregistrement afficher tous les attribut liés à une photo.

    voici mon code dans le fichier action :
    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
       //Ajoute un attribut a un fichier
      public function executeAddattributsfichier(sfWebRequest $request)
      {
      	//Si pas une appelée par autre chose qu'une requête Ajax alors on renvoi erreur 404
    	$this->forward404Unless($request->isXmlHttpRequest());
     
    	$idfichier = $request->getParameter('fichier_id');
     
    	//Enregistre attribut fichier
    	$attribut = new Fichierattribut();
    	$attribut->fichier_id = $request->getParameter('fichier_id');
    	$attribut->intitule = $request->getParameter('attribut');
    	$attribut->valeur = $request->getParameter('value');
    	$attribut->save();
     
    	//Renvoi les attributs pour MAJ de l'affichage
    	$this->fichierattributs = Doctrine::getTable('fichierattribut')
    	  ->createQuery('a')
    	  ->where('fichier_id = ?',$idfichier)
    	  ->execute();
     
    	$this->setTemplate('infosfichier');
      }
    Seulement, cela m'affiche autant de fois le template que d'attribut présent pour la photo. Si j'ai 10 atrtibut pour ma photo, il me réaffiche à suivre 10 fois le template.

    J'ai pourtant le code ci-dessous qui fonctionne bien pour la suppression d'un attribut.

    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
      public function executeDeleteattributsfichier(sfWebRequest $request)
      {
    	//Si pas une appelée par autre chose qu'une requête Ajax alors on renvoi erreur 404
    	$this->forward404Unless($request->isXmlHttpRequest());
     
    	$idfichier = $request->getParameter('id');
    	$nomattribut = $request->getParameter('name');
     
    	$delete = Doctrine::getTable('fichierattribut')
    				->createQuery('a')
    				->where('fichier_id = ?',$idfichier)
    				->andWhere('intitule = ?',$nomattribut)
    				->execute();
     
    	$delete = $delete->getFirst();
     
    	$delete->delete();
     
    	//Renvoi les attributs pour MAJ de l'affichage
    	$this->fichierattributs = Doctrine::getTable('fichierattribut')
    	  ->createQuery('a')
    	  ->where('fichier_id = ?',$idfichier)
    	  ->execute();
     
    	$this->setTemplate('infosfichier');
      }
    si quelqu'un peut m'indiquer pourquoi cela se dupplique.

  2. #2
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Le problème ne vient pas forcément de la, mais de la Vue "infosfichier", tu ne ferais as une boucle de dans permettant d'afficher le contenu de ton objet ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 75
    Par défaut
    bonjour,

    voici la vue infosfichier, il y a en effet une boucle qui permet de lister les attributs.


    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
    51
    <script type="text/javascript">
    $(document).ready(function(){
     
    	$("#add_attribut").click(function(){
    		var fichier_id = $("#attribut_fichier_id").val();
    		var attribut =  $("#attribut_attribut").val();	
    		var value =  $("#attribut_value").val();
    	   $(".infos-fichier-infounitaire").load("<?php echo url_for('add_attributsfichiers'); ?>", {fichier_id: fichier_id, attribut: attribut, value:value} );
    	  return false;
    	});
     
    });
    </script>
     
    <?php $fichier_id = $fichierattributs->getFirst()->getFichier_id(); ?>
     
    <!-- ajout attribut fichier -->
    <?php if($sf_user->hasCredential('fichier'.$fichier_id.'edit')) { ?>
    					<form method="get" action="<?php echo url_for('add_attributsfichiers') ?>" id="formu-attribut">
    						<table style="margin-top:-5px;margin-bottom:2px;">
    							<tr>
    								<td style="float:left;"><input type="text" id="attribut_attribut" style="font-size:10px;width:100px;" name="attribut_attribut" value="<?php echo __("Add an attribute"); ?>..." 
    								onfocus="if(this.value=='<?php echo __("Add an attribute"); ?>...') { this.value=''; }" 
    								onblur="if(this.value=='') { this.value = '<?php echo __("Add an attribute"); ?>...' ;} " /></td>
    								<td><input type="text" id="attribut_value" style="font-size:10px;width:100px;" name="attribut_value" value="<?php echo __("Add a value"); ?>..." 
    								onfocus="if(this.value=='<?php echo __("Add a value"); ?>...') { this.value=''; }" 
    								onblur="if(this.value=='') { this.value = '<?php echo __("Add a value"); ?>...' ;} " />
    								<input type="hidden" id="attribut_fichier_id" name="attribut_fichier_id" value="<?php echo $fichier_id; ?>"/>
    								</td>
    								<td><a href="#add" title="<?php echo __("Add an attribute"); ?>"><img border="0" src="/images/icones/tag_blue_add.png" title="<?php echo __("Add an attribute"); ?>" id="add_attribut"/></a>
    								</td>
    							</tr>
    						</table>
    					</form>
    <?php } ?>
    <!-- parcours attribut fichier -->
     
    <div class="infos-fichier-infounitaire"><span class="infos-titre"><?php echo __("File Id"); ?> :</span><span> <?php echo $fichier_id; ?></span></div>
    <?php if($sf_user->hasCredential('fichier'.$fichier_id.'edit')) { ?>
    	<?php $i = 0; ?>
    	<input type="hidden" id="fichier_id" value="<?php echo $fichier_id; ?>" />
    	<?php foreach($fichierattributs as $fichierattribut): ?>
    		<input type="hidden" id="intitule_<?php echo $i; ?>" value="<?php echo $fichierattribut->getIntitule(); ?>" />
    		<div class="infos-fichier-infounitaire" id="<?php echo $i; ?>"><span id="delete_<?php echo $i; ?>"><a href="#delete" title="<?php echo __("Delete"); ?>" onclick="$('#infos-fichier-infos').load('<?php echo url_for('delete_attributsfichiers');?>', {id: '<?php echo $fichier_id; ?>', name: '<?php echo $fichierattribut->getIntitule(); ?>'});"><img src="/images/icones/textfield_delete.png" alt="<?php echo __("Delete"); ?>" title="<?php echo __("Delete"); ?>" border="0"/></a></span> <span class="infos-titre"><?php echo __($fichierattribut->getIntitule()); ?> :</span> <span class="editable" id="<?php echo $i; ?>"><?php echo $fichierattribut->getValeur(); ?></span></div>
    		<?php $i++; ?>
    	<?php endforeach; ?>
    <?php } else { ?>
    	<?php foreach($fichierattributs as $fichierattribut): ?>
    		<div class="infos-fichier-infounitaire"><span class="infos-titre"><?php echo __($fichierattribut->getIntitule()); ?> :</span> <span><?php echo $fichierattribut->getValeur(); ?></span></div>
    	<?php endforeach; ?>
    <?php } ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PowerBuilder] Prob. d'affichage après insertion de contrôle
    Par Oakenshield dans le forum Powerbuilder
    Réponses: 1
    Dernier message: 30/01/2006, 14h37
  2. Affichage d'une image après insertion dans une base
    Par leloup84 dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2006, 16h34
  3. Rafraichir dbgrid apres insertion d'une donnée ds une table
    Par gizmorambo dans le forum Bases de données
    Réponses: 7
    Dernier message: 11/01/2005, 16h03
  4. [VB.NET] [ADO.NET] Récupérer id après insertion
    Par nashouille dans le forum Accès aux données
    Réponses: 9
    Dernier message: 09/01/2005, 15h54
  5. récupérer valeur d'un ID après insertion
    Par rikidi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/08/2003, 22h21

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