C'est la première fois que j'essaie de charger une vue à l'aide d'Ajax dans Drupal7 et je vous serais reconnaissant de m'aider à partir de zéro. J'ai passé des heures à apprendre comment faire mais j'ai quand même échoué!
J'ai créé une vue appelée image_gallery
, il a trois blocs appelés hd
, tablet
et phone
et il affiche un ensemble d'images. J'ai créé un onglet et je veux afficher et charger ces blocs (généralement vues) avec Ajax. ce mon HTML:
<div>
<div id="image_gallery_tab">
<ul>
<li id="igt1">HD</li>
<li id="igt2">Tablet</li>
<li id="igt3">Cellphone</li>
</ul>
</div>
<div id="image_gallery_content">
<div class="igc" id="igc1">
<?php print views_embed_view("image_gallery","hd") ?>
</div>
<div class="igc" id="igc2">
</div>
<div class="igc" id="igc3">
</div>
</div>
</div>
J'ai réglé le Use Ajax
à "oui" dans l'interface utilisateur des vues. c'est mon code jQuery:
$("#image_gallery_tab ul li").click(function(){
var id = $(this).attr("id").slice(-1);
$(".igc").css("display","none");
if(id==2)
{
$.ajax({
url: Drupal.settings.basePath + 'views/ajax',
type: 'POST',
dataType: 'json',
data: 'view_name=image_gallery&view_display_id=tablet', // Pass a key/value pair.
success: function(response) {
$("#igc2").innerHTML=response.display;
},
error: function(data) {
alert('An error occured!');
}
});
}
});
mais il n'affiche rien. qu'est-ce qui ne va pas ici et que dois-je faire? Merci
Pour quiconque se retrouve ici à la recherche d'une réponse, voici comment vous le faites. Vous devez d'abord activer "Utiliser AJAX" sous Autres paramètres dans la vue et prendre note du "Nom de la machine" car c'est votre ID d'affichage:
Ensuite, voici comment vous le tirez avec JS en utilisant jQuery ajax:
$.ajax({
url: Drupal.settings.basePath + '/views/ajax',
type: 'post',
data: {
view_name: 'your_view_name',
view_display_id: 'page', //your display id
view_args: VIEW_ARGUMENT_HERE, // your views argument(s)
},
dataType: 'json',
success: function (response) {
if (response[1] !== undefined) {
console.log(response[1].data); // do something with the view
}
}
});