私は自分のワードプレスサイトのカスタムAJAXコンタクトフォームを持っています。 Chrome、IE、Opera、Safariで正常に動作しますが、Firefoxでは失敗します。Ajax WordPressのコンタクトフォーム
私は、この私の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
それを試して、うまくいきませんでした。 – BBee
あなたが正しい方向にあなたを導くFFから走ったときにFirebugから何かエラーが出ていますか? – mikevoermans