2016-04-28 28 views
0

所以我做了一個WordPress插件,並在管理頁面中使用ajax調用。它在我的所有測試和服務器上都能正常工作,但現在我在安裝了多個其他插件的大型站點上測試它。我不知道爲什麼,但如果我按下調用ajax請求的按鈕,什麼都沒有發生。WordPress插件管理員阿賈克斯不工作了

這裏是我的AJAX調用的代碼:

jQuery.ajax({ 
    url: "../wp-content/plugins/autocommerce/admin/activatePlugin.php?activate=true", 
    method: "POST", 
    data: { txtAC : txtAC, txtKey: txtKey } 
}).done(function(msg) { 
    if(msg == "success") { 
     jQuery("#admin_activate").append('<input type="hidden" name="txtActivated" value="true" />'); 
     jQuery("#admin_activate").submit(); 
    } else if(msg == "failed") { 
     jQuery("#activateError").html("Gegevens onjuist. Controleer uw gegevens en probeer het opnieuw."); 
    } else if(msg == "notSet") { 
     jQuery("#activateError").html("Een of meerdere velden zijn onjuist ingevuld."); 
    } else { 
     alert(msg); 
     jQuery("#activateError").html("Er is een fout opgetreden. Probeer het later opnieuw."); 
    } 
}); 

沒有錯誤和其他網站上它只是工作,所以我不知道從哪裏開始尋找解決這個問題。

我希望任何人都可以幫助我。

+0

檢查您的腳本是否真的訪問您指定的url url:「../wp-content/plugins/autocommerce/admin/activatePlugin.php?activate=true」 –

+0

我該如何測試?因爲在我測試的其他網站上,代碼工作正常。 –

+0

js中的硬編碼url不是我認爲的最好主意。最好添加在生成ajax調用的頁面的php文件中,並在ajax調用中使用yourUrl變量 –

回答

1

我會建議使用WordPress標準的AJAX爲,而不是使一個AJAX調用自己的PHP文件:

add_action('wp_ajax_yourfunction', 'yourfunction'); 
add_action('wp_ajax_nopriv_yourfunction', 'yourfunction'); 

function nsds_change_password() { 
//your functional part goes here 
} 

ANF然後在Ajax調用使用管理AJAX網址可以輸出事先這樣的:

<script type='text/javascript'> var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>"; </script> 

和使用ajaxurl作爲變量和設置額外的動作參數,這將是你的函數名稱。

+0

謝謝我會盡力使用這種方式。不知道有一個標準的WordPress的AJAX方式:) –

+0

這項工作@WouterdenOuden? 也許你想看看我的問題@Nick Surmanidze。 https://stackoverflow.com/questions/47219525/admin-ajax-php-not-working-in-new-wordpress-version –

+0

@WosleyAlarico我沒有實際使用這段代碼,因爲某些原因,我的jquery ajax工作再次。我不確定我的問題是什麼,但你一定要試試這個答案。希望它適合你 –