Bonjour à tous,

Je rencontre un problème lors de ma procédure AJAX. Firebug me signal que ma requête contient bien les éléments de mon formulaire. Mais, en retour je n'ai qu'une réponse 0.

A priori les nonce passent aussi, mais comme je n'arrive pas à faire de var_dump des données reçues, je ne sais pas ce qu'il se passe.

Je me rends compte qu'il doit y avoir une erreur à la C... dans tout cela mais ou....... Peut être faut il configurer le fichier wp-admin/admin-ajax.php ? Mais je ne sais pas quoi faire

Si vous avez une idée, je suis preneur, parce que je m'arrache les cheveux depuis trois jours et je ne trouve pas la solution.

je vous remercie de votre aide

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
je rajoute dans le header les éléments suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<?php echo is_page('contact') ? '<script>var ajaxurl ="'.admin_url('admin-ajax.php').'"</script>' : ' ';?>
<?php  if (is_page('contact' )){?>
    <script type="text/javascript" src="<?php bloginfo('template_url') ?>/js/custom.js"></script>
<?php } ?>
Mon template page-contact :

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
27
28
<?php get_header(); ?>
 
<form action="#" method="post" class="contact-form">
    <p>
        <label for="contact-name">Nom :</label>
        <input type="text" name="name" value="" id="contact-name" required>
    </p>
    <p>
        <label for="contact-pname">Prénom :</label>
        <input type="text" name="pname" value="" id="contact-pname" required>
    </p>
    <p>
        <label for="contact-email">Email :</label>
        <input type="email" name="email" value="" id="contact-email" required>
    </p>
    <p>
        <label for="contact-message">Message :</label>
         <textarea name="message" value="" id="contact-message" cols="88" rows="5" required></textarea>
    </p>
 
    <input type="submit" id="send-message"  value="envoyer">
    <input type="hidden" name="action" value="contact" />
    <?php wp_nonce_field('ajax_contact_nonce', 'security' ); ?>
 
</form>
 
 
<?php  get_footer( ); ?>
Le fichier Javascript

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
jQuery(document).ready(function($){
 
    if($('#send-message').length > 0) {
 
        $('body').append('<div id="noty"></div>');
 
        var busy = null; // permet de gérer une soumission multiple du  formulaire.
 
        // A la soumission du formulaire
        $('#send-message').click( function(){
 
 
            var error = false,
                form = $(this).parent('form');
 
            form.find('[required]').each( function(){
                // on vérifie si le champ est vide
                if( $.trim( $(this).val() ) == ' ') {
                    $(this).css('border-color','#FF0000');
                    error = true;
                }
                else {
                    $(this).css('border-color','#CDCDCD');
                }
            });
 
            if( !error){
                if ( busy ){busy.abort();}
 
                busy = $.ajax({
                    url: ajaxurl,
                    type: 'POST',
                    data: form.serialize(),
                    success: function( response ){
                        alert(response);
                    }
                });
            }
          return false;
        });
    }
});
LE fichier Ajax :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
add_action( ' wp_ajax_contact' , '_ajax_contact' );
add_action( ' wp_ajax_nopriv_contact' , ' _ajax_contact');
 
function  _ajax_contact() {
 
check_ajax_referer( 'ajax_contact_nonce' , 'security'   );
 
 
echo('toto');
die();
 
}