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

jQuery Discussion :

AJAX et wordpress


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut AJAX et wordpress
    Bonjour tout le monde,

    Je souhaiterais mettre en place pour un projet wordpress la possibilité de scroller vers le bas de ma page pour charger des articles supplémentaires.

    Pour l'instant je fait cela avec un bouton pour simplifier les choses au départ.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <a id="json_click_handler" href="#">Cliquez ici.</a>
     
    <div id="json_response_box"></div>
    Puis dans un fichier js mes fonctions :

    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
    jQuery(document).ready(function(){
         jQuery('#json_click_handler').click(function(){
              doAjaxRequest();
         });
    });
    function doAjaxRequest(){
         jQuery.ajax({
              url: 'http://monsite.com//wp-admin/admin-ajax.php',
              data:{
                   'action':'do_ajax',
                   'fn':'get_post_type',
                   'post_type':'portfolios_tuiles',
                   'count':10
                   },
              dataType: 'JSON',
              success:function(data){
                                      jQuery("#json_response_box").html(data);
                                    },
              error: function(errorThrown){
                   alert('error');
                   console.log(errorThrown);
              }
     
         });
     
    }
    J'ai donc réussi a charger des post particulier, en fonction de leurs type (ici : portfolios_tuiles) avec ce bout de code :

    Code php : 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
    add_action('wp_ajax_nopriv_do_ajax', 'our_ajax_function');
    	add_action('wp_ajax_do_ajax', 'notre_fonction_ajax');
    	function notre_fonction_ajax(){
    	     // ici nous allons écrire ce que le serveur doit faire avec les données// ce switch lancera les fonctions selon la valeur qu'aura notre variable 'fn'
     
    	     switch($_REQUEST['fn']){
    	          case 'get_post_type':
    	               $output = ajax_get_post_type($_REQUEST['post_type']);
    	          break;
     
    	          default:
    	              $output = 'No function specified, check your jQuery.ajax() call';
    	          break;
     
    	     }
     
    	   // Maintenant nous allons transformer notre résultat en JSON et l'afficher
     
    	     $output=json_encode($output);
    	     if(is_array($output)){
    	        print_r($output);
    	     }
    	     else{
    	        echo $output;
    	     }
    	     die;
    	}
     
    	function ajax_get_post_type($post_type){
         $posts = get_posts('post_type='.$post_type);
         return $posts;
    	}

    Le fait est que je voudrais aussi contrôler le nombre de post récupéré et aussi par la suite (si par exemple les 10 posts charger au debut au les ID 3030 à 3039) charger les 10 suivant (donc les ID 3040 à 3049).

    J'ai donc besoin de mettre plusieurs paramètres à ma fonction ajax_get_post_type, car les data présente dans ma fonction doAjaxRequest (post_type et count) fonctionne indépendamment, je cherche donc à savoir quel serais la syntaxe pour changer $posts = get_posts('post_type='.$post_type); avec post_tpe et count...

    J'a fait des essais avec un tableau...mais jene maîtrise pas la syntaxe je pense. j'ai fait quelques recherche et je tombe d'erreur en erreur, un petit coup de pouce serais le bienvenu =)

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    pas tout compris à ton problème, qu'est ce qui t'empêche de mettre un paramètre en plus ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Bof... ma mal connaissance de la syntaxe.. Problème réglé. Maintenant je dois afficher le résultat de mon tableau JSON que mon AJAX me renvoie... Je fait mes recherche ^^

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dataType: 'JSON',
    success:function(data){
    avec un datatype 'JSON' data contient un objet JSON, à toi de récupérer les valeurs de chaque clé.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Olala une fin de semaine agitée sans électricité chez moi...Donc réponse tardive ! Merci je me remet au boulot sans tarder merci pour la piste =)

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Par défaut
    Hum...Quelque chose m'échappe..

    Je charge mon json avec AJAX comme ceci :

    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
    jQuery(document).ready(function(){
              doAjaxRequest();
    });
    function doAjaxRequest(){
         jQuery.ajax({
              url: 'http://monsite.com//wp-admin/admin-ajax.php',
              data:{
                   'action':'do_ajax',
                   'fn':'get_post_type',
                   'post_type':'portfolios_tuiles',
                   'count':25,
                   'offset':0,
                   'meta_value':12
                   },
              dataType: 'JSON',
              success:function(data){
                                      jQuery("#json_response_box").html(data);
                                    },
              error: function(errorThrown){
                   alert('error');
                   console.log(errorThrown);
              }
     
         });
     
    }
    J'ai deux choses à faire avec ce tableau json. La 1ère est de récupérer l'ID du derniers post du tableau et de permettre à l'appui d'un bouton de charger les posts suivant.
    Voici une ligne de résultat de mon json :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0: {ID:3030, post_author:1, post_date:2014-01-21 14:58:30, post_date_gmt:2014-01-21 12:58:30,…}
    Comment puis je faire pour lire l'ID de ma ligne 0 ? En Php. Ensuite je stockerais le résultat dans une variable que j'enverrais dans la nouvelle requête en tant que paramètre.


    Deuxième chose : Comment puis je simplement afficher (faire un echo) de mon json ? Pour l'instant je n'est que des "NULL"...

    Merci de votre aide si vous me trouvez des pistes pour avancer ^^

Discussions similaires

  1. [AJAX] Récupération de variable avec Ajax dans Wordpress
    Par kaelig dans le forum jQuery
    Réponses: 14
    Dernier message: 03/11/2014, 11h05
  2. Problème d'usage d'Ajax
    Par kurosaki91 dans le forum WordPress
    Réponses: 0
    Dernier message: 29/09/2014, 18h40
  3. Problème d'usage d'Ajax en Wordpress
    Par kurosaki91 dans le forum CMS .NET
    Réponses: 0
    Dernier message: 29/09/2014, 18h27
  4. [AJAX] Ajax Php WordPress - Challenge!
    Par bali.cogerino dans le forum AJAX
    Réponses: 0
    Dernier message: 06/07/2011, 18h18

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