Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/05/2011, 10h51   #1
Invité régulier
 
G_like Did
Inscription : mars 2010
Messages : 23
Détails du profil
Informations personnelles :
Nom : G_like Did

Informations forums :
Inscription : mars 2010
Messages : 23
Points : 9
Points : 9
Par défaut utilisation renderPartial pas comprise

Bonjour,

j'essaie d'utiliser Ajax pour mettre des éléments à jour au sein d'une page (affichage par ordre croissant ou decroissant d'un ensemble d'items), mais je butte sur la façon d'actualiser la page.

Plus en détails, je dispose d'une action visu qui recupère un tableau d'items
Code :
1
2
3
4
5
actions.class.php : 
   executeVisu()
      {
      $this->item;
      }
Ceci est récupéré par le template visuSuccess.php
Code :
1
2
      <div id='down'><input type='button' value='bas'></div>
      include_partial('detail',array('det'=>$item));
le partial _detail
Code :
      foreach($det as $d) {affichage d un tableau ligne par ligne}
le fichier javascript permettant l'interaction
Code :
1
2
3
4
5
     $function(){
                $("#down").click(function(e){
                     $.post('affiche',{tri:'DESC'})
                });
     });
le fichier actions.class.php
Code :
1
2
3
  executeAffiche()
     recuperation de la variable tri et requete sur les items en consequence
     return $this->renderPartial('detail',array('detail)=>$item));
Ce code (j'ai simplifié) ne met pas à jour ma page et ne génère aucune erreur. Si je remplace la ligne renderPartial par
Code :
return $this->getPartial('detail',array('detail)=>$item));
, je vois dans le log d'erreurs le résultat que j'attends (ligne de mon tableau) avec le message comme quoi le template 'affiche' n'existe pas ou n'est pas lisible.

Je pense donc que les rêquetes sont en place pour avoir les données attendues mais que je ne sais pas les afficher. Je ne comprends pas comment fonctionne renderPartial, comment indiquer quelle partie de la page est à actualiser ?

Merci de votre aide
DidG_like est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h35   #2
Membre régulier
 
Homme
Développeur Web
Inscription : septembre 2008
Messages : 253
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : Corée

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2008
Messages : 253
Points : 90
Points : 90
Merci de mettre en forme ton texte avec des balises, ça casse les yeux rien qu'a essayer de lire.
Fused est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 17h08   #3
Invité régulier
 
G_like Did
Inscription : mars 2010
Messages : 23
Détails du profil
Informations personnelles :
Nom : G_like Did

Informations forums :
Inscription : mars 2010
Messages : 23
Points : 9
Points : 9
Bonjour,

restant bloqué sur ce point, je reprends mon post en fournissant un code plus précis. Mon problème étant de mettre à jour une partie d'un template (minimalisé à un champ de saisi text - en réalité un foreach tournant sur l'affichage d'un tableau) lors d'un clic sur le bouton 'frequence_down':
Code :
1
2
3
4
5
6
7
8
9
10
modules/statistiques/actions/action.class.php

  public function executeVisu(sfWebRequest $request)
  {
        ...
	//calcul de la frequence des RDV
	$this->frequence = $stat_user->getAll_Frequence('ASC');
        ...
   }
le template associé :
Code :
1
2
3
4
5
6
7
8
9
modules/statistiques/templates/visuSuccess.php
<form name='stat' action='<?php echo url_for('statistiques/visu') ?>' method='post'>
  <div id='fr'>
    <?php  
      include_partial('statistiques/frequenceRDV',array('fr'=>$frequence));	
    ?>
  </div>
</form>
Le partial appelé
Code :
1
2
3
4
5
modules/statistiques/templates/_frequenceRDV.php
<div id='frequence_down'><input type='button' value='bas' id='freq_down'/></div>
<input type="text" name="query" value="titi" id="search_keywords" />
+ une partie utilisant $fr pour construire un tableau html (pas utile pour la compréhension)
Le javascript (effectivement appelé lors de l'appui dans la div frequence_down)
Code :
1
2
3
4
5
6
7
8
9
10
web/js/Stat_script.js
$(document).ready(function()
 {
   $("#frequence_down").click(function(e)
     { 
       $('#search_keywords').load($(this).parents('stat').attr('action'), { query: 'tata' });
	}
	);
 });
Avec ce code, je m'attend à remplacer le texte 'titi' par le texte 'tata' mais rien ne se passe (avec quelques affichage dans le .js, je controle bien que je rentre dans la partie Ajax).

Quel est le principe que je ne respecte pas pour actualiser la page ?

Merci d'avance pour votre aide.
DidG_like est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h30.


 
 
 
 
Partenaires

Hébergement Web