WordPress中的Ajax联系表格
问题描述:
我为我的WordPress网站定制了AJAX联系表。它在Chrome,IE,Opera,Safari上运行良好,但在Firefox中失败。WordPress中的Ajax联系表格
我有这个在我的function.php
// Contact Form
wp_enqueue_script('my-ajax-request', plugin_dir_url(__FILE__) . 'js/ajax.js', array('jquery'));
// declare the URL to the file that handles the AJAX request (wp-admin/admin-ajax.php)
wp_localize_script('my-ajax-request', 'MyAjax', array('ajaxurl' => admin_url('admin-ajax.php')));
add_action('wp_ajax_mail_action', 'sending_mail');
add_action('wp_ajax_nopriv_mail_action', 'sending_mail');
function sending_mail(){
$email = $_POST['email'];
$comments = $_POST['comments'];
$name = $_POST['name'];
$to = get_bloginfo('admin_email');
$subject = '[Contact Form] From '.$name;
$message = "Name: $name \n\nEmail: $email \n\nComments: $comments";
$headers = 'From: '.$name. "\r\n" . 'Reply-To: ' . $email;
mail($to, $subject, $message, $headers);
}
,并呼吁与AJAX:
jQuery("#submit-button").click(function (e) {
... ...
var data = {};
data.email = $("#email").val();
data.name = $("#contactName").val();
data.comments = $("#commentsText").val();
data.action = "mail_action";
$.post(MyAjax.ajaxurl, data, onSuccess);
function onSuccess(results){ ... }
}
我居然没有文件ajax.js.我很困惑,它在Chrome和其他浏览器中工作,但不在Firefox中。是否因为缺少ajax.js?
我试图删除(在functions.php的)行:
wp_enqueue_script('my-ajax-request', plugin_dir_url(__FILE__) . 'js/ajax.js', array('jquery'));
但随后,形式不会在任何浏览器中工作。我得到错误 未捕获ReferenceError:MyAjax未定义
任何帮助,将不胜感激。
为什么你想排队不存在的文件?你可以制作一个空文件并让它起作用吗?虽然我可能并不理解问题。 – mikevoermans 2012-03-15 20:56:01
试过,没有工作。 – BBee 2012-03-15 21:22:35
当你从FF运行时,你是否从Firebug获得任何错误,这会导致你在正确的方向? – mikevoermans 2012-03-15 21:24:02