CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 31-01-2014 08:45:49

Sabe67
Brownie
Date d'inscription: 11-06-2012
Messages: 24

Rafraichir un élément en jquery ajax ou autre méthode ?

Bonjour à tous,

Actuellement j'ai développé un site intégrant des "éléments" dans différentes parties de mon site, sachant que mon site fonctionne entièrement en Ajax.

Pour le moment je fonctionne de la manière suivante :
Lors du clique sur un de mes menus, ou la soumission d'un de mes formulaires j'utilise jquery.ajax de cette manière :

Code: php

  1. $(document).on("submit", ".formajax", function(evt)
  2. {  
  3.   $(this).ajaxSubmit(
  4.   {
  5.     beforeSend : function()
  6.     {    
  7.       $("#content").append('<div id="loader"></div>');
  8.     },
  9.     success: function(html)
  10.     {
  11.       $("#content").html(html).fadeIn("slow");
  12.     },
  13.     complete: function(html)
  14.     {
  15.       $('#list_playlist').load('/playlist/ajax_listplaylist');
  16.       $('#playlist').load('/playlist/ajax_playlist')
  17.       $('#current_playlist').load('/playlist/ajax_currentplaylist');
  18.      
  19.       $('#loader').remove();
  20.     }
  21.   });
  22.   return false;
  23. });

Les fichiers "ajax_listplaylist", "ajax_playlist", et "ajax_currentplaylist" sont normalement des "éléments". Je les ai dupliqué en pages afin de pouvoir les appeler avec jquery.

Alors, est-ce la bonne méthode où il existe t-il une méthode plus simple  ?

Merci d'avance smile

Dernière modification par Sabe67 (31-01-2014 08:46:18)

Hors ligne

 

#2 01-02-2014 09:38:33

s13
Fraisier
Date d'inscription: 28-01-2011
Messages: 64

Re: Rafraichir un élément en jquery ajax ou autre méthode ?

Bonjour,

Dans ton controller, tu pourrais utiliser $this->Render('/Elements/ajax_listplaylist');
Ca utilisera ton élément au lieu de ta vue 'classique'.

Après si tu ne l'as pas déjà lu, http://www.dereuromark.de/2014/01/09/ajax-and-cakephp/
Je procède désormais de la même manière et à mon avis c'est la meilleur pratique.


-
Join us: irc.freenode.net #cakephp-fr

Hors ligne

 

#3 03-02-2014 09:56:05

Sabe67
Brownie
Date d'inscription: 11-06-2012
Messages: 24

Re: Rafraichir un élément en jquery ajax ou autre méthode ?

Salut,

Merci pour ta réponse !

Je vais voir ce que ça donne big_smile

Hors ligne

 

#4 11-04-2014 13:59:57

Sabe67
Brownie
Date d'inscription: 11-06-2012
Messages: 24

Re: Rafraichir un élément en jquery ajax ou autre méthode ?

Up parce qu'en faite la réponse précédent ne m'aide pas vraiment !

Hors ligne

 

#5 11-04-2014 15:58:26

sammnrve
Brownie
Date d'inscription: 28-02-2011
Messages: 29

Re: Rafraichir un élément en jquery ajax ou autre méthode ?

salut

le problème c'est que dans ta page ( javascript coté browser) tu veux faire appel a des élément qui ne sont connu que du serveur.

pourquoi ne pas renvoyer tes 3 éléments en retour de ton appel ajax dans un tableau JSON.

dans ton controller

Code: php

  1. $this->render('/Elements/playlist/playlist', 'ajax');

et dans l'élément playlist/playlist.ctp

Code: php

  1. <?php
  2. $dataAjax['list_playlist'] = echo $this->element('playlist/ajax_listplaylist');
  3. $dataAjax['playlisecho'] = echo $this->element('/playlist/ajax_playlist');
  4. $dataAjax['current_playlist'] = echo $this->element('/playlist/ajax_currentplaylist');
  5.  
  6. header('Content-type: application/json; charset=utf-8');
  7. echo $this->Js->object($dataAjax);
  8. ?>

sa devrais le faire.

ce qui ferait que dans ton traitement JS

Code: php

  1.      $('#list_playlist').html(html.list_playlis);
  2.       $('#playlist').html(html.playlisecho);
  3.       $('#current_playlist').html(html.current_playlist);

A quoi sert le savoir si il n'est pas partagé

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr