Procédure AJAX et retour 0
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:
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:
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:
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:
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();
} |