2011-06-05 5 views
0

Je tente de charger un composant via AJAX dans un contexte symfony.symfony: Problème de chargement du composant avec AJAX

je créer mon lien à mon avis:

<?php 
    echo jq_link_to_remote('Compétences', array(
     'update' => 'right_column', 
     'url'  => 'personnage/loadCompetences', 
     'position' => 'top', 
    )); 
?> 

L'action appelée:

public function executeLoadCompetences(sfWebRequest $request){ 
    if ($request->isXmlHttpRequest()) 
     $this->renderComponent("personnage", "competences"); 
} 

et le composant (contrôleur + vue _competence.php)

public function executeCompetences(sfWebRequest $request){ 
     $personnage = $this->getUser()->getGuardUser()->Personnage; 

     $this->lecture = $personnage->getCom_lecture(); 
     $this->ecriture = $personnage->getCom_ecriture(); 
     $this->armes = $personnage->getCom_armes(); 
     $this->bouclier = $personnage->getCom_bouclier(); 
     $this->diplomatie = $personnage->getCom_diplomatie(); 
     $this->commandement = $personnage->getCom_commandement(); 
     $this->meditation = $personnage->getCom_meditation(); 
     $this->embuscade = $personnage->getCom_embuscade(); 
     $this->herboristerie = $personnage->getCom_herboristerie(); 
     $this->espionnage = $personnage->getCom_espionnage(); 
} 


<div id="subpanel"> 
    <ul id="competences"> 
     <li class="competence"> 
      <span>Lecture</span> 
      <img alt="" src="/medieval-ages-v2/web/images/competences/competences_<?php echo $lecture ?>.png" /> 
     </li> 
    ... 
    </ul> 
</div> 

Mais je peux ne charge pas le composant si je ne définis pas un loadCompetenceSuccess.php (qui inclut le composant).

Existe-t-il un moyen de charger un composant sans créer une vue xxxSuccess.php?

Répondre

1

vous manque un return dans le code de votre action:

return $this->renderComponent("personnage", "competences"); 

À moins que vous retournez quelque chose, symfony suppose « succès », c'est pourquoi il cherche actionNameSuccess.php par défaut.

En outre: au lieu de coder en dur les images comme cela, jetez un oeil aux helpers image_path et image_tag.