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 :
Mon template page-contact :
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 } ?>
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 <?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 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
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; }); } });
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(); }
Partager