由于没有任何给定的代码,您无法获得完整的工作示例,因此我将向您展示一个粗略的wordpress AJAX设置:
把这些都放进去functions.php
:
<?php
add_action(\'wp_head\', \'my_action_javascript\');
function my_action_javascript() {
?>
<script type="text/javascript" >
jQuery(document).ready(function($) {
jQuery.ajax(
type: \'POST\',
url: <?php echo admin_url(\'admin-ajax.php\'); ?>,
data: {
action : \'your_AJAX_call\',
league : $(\'input#league\').val() // get the user input
},
success: function( response, textStatus, XMLHttpRequest ) {
$(\'ul#menu\').append(response);
}
error: function( XMLHttpRequest, textStatus, errorThrown ) {
alert(\'An error occured\');
}
);
});
</script>
<?php
}
add_action( \'wp_ajax_nopriv_your_AJAX_call\', \'your_AJAX_call\' );
add_action( \'wp_ajax_your_AJAX_call\', \'your_AJAX_call\' );
function your_AJAX_call() {
$league = $_POST[\'league\'];
// do sanitization
// if sanitization is ok:
// save to DB
// echo sth like \'<li><a href="new-league">New League</a></li>\'
exit; // won\'t work without!
}
我建议返回一个json编码的数组,以便提供更详细的信息。一、 e.如果卫生处理因时间太短而失败:
// Your sanitization logic here
$arr = array (\'success\'=>false,\'error\'=>\'Length must be at least 3 Characters\');
echo json_encode($arr);
http://php.net/manual/de/function.json-encode.php
然后在你的
response
ajax调用的功能:
var response = jQuery.parseJSON(response);
alert(\'An error occured: \' + response.error);
http://api.jquery.com/jQuery.parseJSON/
下面是一篇关于在wordpress中使用ajax的好文章:
http://www.garyc40.com/2010/03/5-tips-for-using-ajax-in-wordpress/
编辑:
完全忘记了这一点:
add_submenu_page()
无法工作,因为此时已呈现页面。