web-dev-qa-db-fra.com

Charger du contenu dans une div avec ajax

donnez-moi s'il vous plaît des conseils Je suis très nouveau sur ajax, j'ai une liste de posts, si je clique dessus, les informations sur les posts seront affichées dans une div sans charger la page. Je sais que je dois utiliser ajax, je crée donc un fichier: loadcontent.php dans un dossier racine et utilise le code ci-dessous, mais je ne sais pas comment envoyer et obtenir des données via ajax. Je dois passer un identifiant afin d'obtenir des informations sur le post.

<script>
   $(document).ready(function(){

    $.ajaxSetup({cache:false});
        $(".post-link").click(function(){
        var post_id = $(this).attr("rel"); //this is the post id
        $("#post-container").html("content loading");
        $("#post-container").load("/loadcontent.php");
       return false;
    });

  });
</script> 
1
Yoona

Utilisez l'API Ajax fournie par WordPress.

Dans un premier temps, corrigez votre demande Ajax:

<script>
$(".post-link").click(function(){
    var post_id = $(this).attr("rel"); //this is the post id
    $("#post-container").html("content loading");
    $.ajax({
        url: myapiurl.ajax_url,
        type: 'post|get|put',
        data: {
            action: 'my_php_function_name',
            post_id: post_id
        },
        success: function(data) {
            // What I have to do...
        },
        fail: {
            // What I have to do...
        }
    });
    return false;
});
</script> 

Maintenant, vous devez créer votre traitement WordPress. Vous pouvez mettre ce code dans votre functions.php ou dans un fichier plugin.

add_action( 'admin_enqueue_scripts', 'my_ajax_scripts' );
function my_ajax_scripts() {
    wp_localize_script( 'ajaxRequestId', 'myapiurl', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}

Et puis ... votre fonction qui récupère vos posts

function my_php_function_name() {
    // What I have to do...
}

PS: Ne mettez jamais de code dans le dossier d’installation racine. Utilisez functions.php de votre thème ou créez un plugin. C'est très important pour la maintenabilité et la sécurité. S'amuser :)

5
Kaeles