[英]Wordpress Ajax call not working on custom page
一切似乎井井有條,但仍未填充目的地。
到目前為止,我已經驗證了它可以在我創建的插件中找到PHP和JS文件,甚至可以生成XML輸出。 我可以看到是否允許默認的<a>
標記行為。
它以某種方式阻止了生成輸出的位置。
謝謝
這是一個自定義頁面。
1-這是HTML:
鏈接以觸發ajax:
$link = admin_url('admin-ajax.php?action=pay_dialog_step1&boo_zone='.$palier['palier']);
<a href="' . $link . '" id="' . $palier['palier'].'" class="do_popup btn btn-lg">'.get_option('_boopass_buybtn_label', '').'</a>
要填充的分區:
<div id="alloconv_popup"></div>
2-插件目錄中的PHP代碼
add_action("wp_ajax_pay_dialog_step1", "pay_dialog_step1");
// ajax call
function pay_dialog_step1(){
$boo_zone = $_REQUEST['boo_zone'];
$response = new WP_Ajax_Response;
$html = '<div class="bp_entry_wrapper">
<div class="entry normal" >
<div class="alloconv_palier_header" >
<p> Alloconv ' . get_option('alloconv_' . $_REQUEST['boo_zone'] .'_token', '') . ' tokens </p>
</div>';
$html.= get_option('alloconv_' . $_REQUEST['boo_zone'] .'_script', '');
$html.= "</div>";
$html.= "</div>";
$response->add( array(
'data' => 'success',
'supplemental' => array(
'boo_zone' => $boo_zone,
'message' => $html,
),
) );
$response->send();
exit();
}
add_action('init', 'ajax_popup_script' );
function ajax_popup_script() {
wp_register_script( "ajax_popup_script", WP_PLUGIN_URL.'/ajax-popup-paiement/ajax_popup_paiement.js', array('jquery') );
wp_localize_script( 'ajax_popup_script', 'ajaxPaiement', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'ajax_popup_script' );
}
3-同一插件目錄上的jQuery代碼
jQuery(document).ready( function() {
jQuery(".do_popup").click( function(e) {
e.preventDefault();
var link = this;
var boo_zone= jQuery(link).attr("id");
var info = {
action: 'pay_dialog_step1',
boo_zone: boo_zone
};
// Post to the server
jQuery.ajax({
type:"POST",
url:ajaxPaiement.ajaxurl,
data:info,
dataType:html,
success: function(data){
jQuery("#alloconv_popup").html(data);
}
});
});
});
您必須讓wp知道誰可以使用ajax調用。
wp_ajax用於管理部分
add_action('wp_ajax_process_ajax_input', 'callBackFunction_Name');
wp_ajax_nopriv適用於非管理員(用戶)
add_action('wp_ajax_nopriv_process_ajax_input', 'callBackFunction_Name');
這是回調函數,它將處理您的ajax調用。
function callBackFunction_Name{
$allFields = $_REQUEST;
#todo process input.
}
我終於找到了問題所在。 簡而言之,在ajax調用中,數據類型應為“ xml”而不是“ html”。
WP_Ajax_Response生成一個XML文件,因此需要相應地調整ajax調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.