AJAX-Kontaktformular-Problem

Ich habe ein Kontaktformular für meine Seitenleiste erstellt, das perfekt in Chrome funktioniert, aber nicht in IE oder FF.

Ich habe es stundenlang angeguckt und kann nicht herausfinden, was ich falsch gemacht habe.

Ich bekomme nirgendwo Fehler, aber wenn ich es in FF oder IE einreiche, meldet es “Nö” in meiner Konsole und gibt eine Nachricht von -1 in #jvmsg aus.

Mein html ist:

  • Test

    Thanks for the email
  • Meine js Datei ist wie folgt:

     jQuery(document).ready(function($) { jQuery('#jvcontact').submit(function() { jQuery('.widget_contact input[type="submit"]').hide(); jQuery('.jvloading').show(); var str = jQuery(this).serialize(); jQuery.ajax({ type: 'POST', url: '/wp-admin/admin-ajax.php', data: 'action=contact_form&'+str, success: function(msg) { //jQuery('#jvmsg').ajaxComplete(function(event, request, settings){ if(msg === 'sent') { console.log('sent'); jQuery('#jvmsg').hide(); jQuery('.jvloading').slideUp(); jQuery('.widget_contact input[type="submit"]').slideUp(); jQuery('#jvcontact').slideUp(); jQuery('#jvsuccess').fadeIn('slow'); } else { console.log('nope'); jQuery('#jvmsg').html(msg); jQuery('.jvloading').hide(); jQuery('.widget_contact input[type="submit"]').show(); jQuery('#jvmsg').fadeIn('slow'); } //}); } }); return false; }); 

    });

    Meine PHP-Datei:

     function ajax_contact() { if(!empty($_POST)) { $error = ""; //Check to make sure sure that a valid email address is submitted if(trim($_POST['email']) == '') { $error .= "An email address is required
    "; } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[AZ]{2,4}$", trim($_POST['email']))) { $error .= "A valid email address is required
    "; } else { $email = trim($_POST['email']); } //Check to make sure that the first name field is not empty if(trim($_POST['firstName']) == '') { $error .= "Your first name is required
    "; } else { $firstName = trim($_POST['firstName']); } //Check to make sure that the last name field is not empty if(trim($_POST['lastName']) == '') { $error .= "Your last name is required
    "; } else { $lastName = trim($_POST['lastName']); } if(trim($_POST['question']) == '') { $question = "They had no questions at this time"; } else { $question = $_POST['question']; } $admin_mail = get_bloginfo('admin_email'); if(empty($error)) { $message = "Someone wants to get in touch with you. \n\n Name: " . $firstName . " " . $lastName . "\n Email: " . $email . "\n Question: " . $question . "\n"; $jvMail = wp_mail($admin_mail, 'Contact from your website', $message); echo "sent"; } else { echo $error; } die(); } } add_action('wp_ajax_contact_form', 'ajax_contact');

    Danke für die Hilfe!

    Solutions Collecting From Web of "AJAX-Kontaktformular-Problem"

    Bist du mit allen Browsern eingeloggt? schon seit

    add_action('wp_ajax_contact_form', 'ajax_contact');

    funktioniert nur für angemeldete Benutzer, also müssen Sie es ändern, um es zu beheben:

    add_action('wp_ajax_nopriv_contact_form', 'ajax_contact');

    wenn Sie möchten, dass Ihre function sowohl für Besucher als auch für Benutzer funktioniert.