簡體   English   中英

WordPress中的Ajax聯系表

[英]Ajax Contact Form in WordPress

我的WordPress網站有自定義的AJAX聯系表格。 它可以與Chrome,IE,Opera,Safari正常運行,但在Firefox中無法運行。

我的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

任何幫助,將不勝感激。

您需要在發送郵件功能結束之前執行此操作

die(); // this is required to return a proper result

插件中的AJAX位於頁面的中間。

您為什么不為此使用現成的解決方案? 試用WordPress聯系人表單滑塊

它也可與AJAX和跨瀏覽器兼容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM