所有似乎都是为了,但仍然没有得到目的地填充。WordPress的Ajax调用不工作的自定义页面
到目前为止,我已经验证它可以在我创建的插件中找到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 jq在相同的插件目录上的代码
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);
}
});
});
});
嗨,你确定你的ajax的网址参数?我相信你目前正在2.8的更高版本中开发。尝试在你的ajax url参数中使用ajaxurl变量。 Docs @https://codex.wordpress.org/AJAX_in_Plugins –
谢谢@jameshwartlopez。这是我最近尝试找出问题所在。我实际上使用ajaxPaiement.ajaxurl。更正以上 – BernardA