通常,以下是我的解决方案代码:
<script type="text/javascript">
// Выполнить асинхронный Ajax-запрос с помощью метода POST.
// Отправить данные на сервер и в случае успеха вывести
// ответ сервера в диалоговом окне.
//jQuery(document).die(\'click\', \'#order_\'+button.id) ;
function showPopup (button) {
jQuery(document).on(\'click\', \'#\'+button.id, function(event) {
jQuery.ajax({
url: \'/wp-admin/admin-ajax.php\', // сделали запрос
type: "POST", // указали метод
data: { // передаем параметры отправляемого запроса
action: \'my_ajax_action\', // вызываем хук который обработает наш ajax запрос
orderid: jQuery(this).data(\'orderid\'), // передаем параметры из кнопки
user: jQuery(this).data(\'user\'), // передаем параметры из кнопки
},
success: function(data)
{
jQuery(\'.results\').html( /*"ИНФОРМАЦИЯ О СРАЖЕНИИ:<br>" + */data );
jQuery(\'.results\').show();
}
})
return false;
/* as before */
});
};
function closePopup (button_id) {
jQuery(document).on(\'click\', \'#close_\'+button_id, function() {
jQuery(\'.results\').hide();
return false;
/* as before */ });
}
</script>
这是前端的一段代码(这只是php文件中代码的一部分-抱歉,我无法显示整个文件):
echo \'<td style="text-align: center;border-left: none;font-size: 17px;"><button onclick="javascript:showPopup(this);" class="sale_buton checkout-button button alt wc-forward" id="order_\'.$lineItem[\'order_id\'].\'" data-orderid="\'.$lineItem[\'order_id\'].\'" data-user="\'.$user_id.\'" data-variation="\'.$lineItem[\'variation_id\'].\'" href="">Сразиться</button></td></tr>\';// /*\'. esc_url( $order->get_view_order_url() ) .\'*/Кнопка отрабатывает по клику - выхватывает Ajax-ом такие данные как (id участника-заявителя, название заявки, id заявки, ставка-взнос-тариф)\'</td>\';
}
}
echo \'</tbody></table></br>\' ;
?>
<div class="results"></div> <!-- здесь будет выводится результат -->
这是我在函数中输入的代码的一部分。插件中的php文件(我也无法显示代码-仅显示负责使用JS的部分):
add_action("wp_ajax_my_ajax_action", "k_ajax_my_ajax_action");// для фронтенда
add_action("wp_ajax_nopriv_my_ajax_action", "k_ajax_my_ajax_action");// для админки
function k_ajax_my_ajax_action(){
echo \'<div class="clos">\';
echo \'<div class="close" id="close_\'.$_POST[\'orderid\'].\'" onclick="javascript:closePopup(\'.$_POST[\'orderid\'].\');">Закрыть</div></br>\';
//here is some code that can be executed
echo \'</div>\';
echo \'<div class="cl"></div>\';
exit;
}
和CSS:
.cl {
width: 100%;
height: 100%;
position: fixed;
top: 1px;
left: 1px;
background: black;
opacity: 0.8;
z-index: 1030;
}
.clos {
width: 360px;
height: auto;
background: white;
top: 80px;
z-index: 1031;
padding: 1%;
position: fixed;
left: 50%;
margin-left: -180px;
}
.close{
float:right;
font-size:21px;
font-weight:700;
line-height:1;
color:#000;
text-shadow:0 1px 0 #fff;opacity:.2;
filter:alpha(opacity=20)
}
.close:hover,.close:focus{
color:#000;
text-decoration:none;
cursor:pointer;
opacity:.5;
filter:alpha(opacity=50)
}
button.close{
padding:0;
cursor:pointer;
background:0 0;
border:0;-webkit-appearance:none
}
下面是一个活生生的例子:
svary.club