javascript – WordPress AJAX不起作用 – 响应0
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – WordPress AJAX不起作用 – 响应0,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3061字,纯文字阅读大概需要5分钟。
内容图文
![javascript – WordPress AJAX不起作用 – 响应0](/upload/InfoBanner/zyjiaocheng/725/9084085c92ba4ccb9ce28a5852420ec0.jpg)
我想为我的插件添加AJAX支持,这个简单的事情我有很大的问题. WordPress不允许我使用普通的AJAX,我需要使用WordPress版本.
在任何时候,WordPress函数(应生成输出)返回0.我认为原因是WP不会触发’函数’.我试图强制该函数运行多次,但我不知道我可以改进什么.
<?php
public function widget( $args, $instance ) {
$options = get_option('Free_Quotation_options');
?>
<script type="text/javascript" >
jQuery(document).ready(function($) {
var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
jQuery.ajax({
url: ajaxurl,
type: 'POST',
action: 'fqtag',
data: {
'whatever': 'text'
},
success: function (output) {
$('#secondary').append(output);
}
});
});
</script>
<?php
add_action( 'wp_ajax_fqtag', 'fqtag' );
add_action( 'wp_ajax_nopriv_fqtag', 'fqtag' );
function fqtag() {
global $wpdb;
echo 'echo';
die();
}
}
我尝试添加警报(‘echo’);对测试功能,但它没有任何影响.我认为AJAX没有运行正确的函数:fq_tag_support_callback().
一开始我遇到了ajaxurl变量的问题.它没有定义.这不是正常情况.我尝试使用以下方法解决此问题:
var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
你有什么想法,我怎样才能解决这个问题?
—编辑—与大卫讨论后我有这样的文件(所有时间都不起作用)
<?php
/*
Plugin Name: TEST PLUGIN
Description: TEST
Author: Krzysztof Kubiak
Version: 1.0
*/
function Test_01_settings_init(){
register_setting( 'Test_01_settings_filed', 'Test_01_options', 'Test_01_validate' );
}
add_action('admin_init', 'Test_01_settings_init' );
function T01_init_method() {
wp_enqueue_script('jquery');
}
add_action('init', 'T01_init_method');
function Test_01_menu_page(){
add_menu_page( 'Test_01', 'Test_01', 'manage_options', 'T01_menu_page', 'T01_add_page' );
echo my_test();
}
add_action('admin_menu', 'Test_01_menu_page');
function my_test(){
echo 'Function test';
}
function T01_add_page() {
echo 'TEST_01_plugin';
}
function Test_01_validate($input) {
}
//AJAX FROM HIRE
function test_callback() {
$whatever = 8;
echo $whatever;
die();
}
add_action( 'wp_ajax_nopriv_fqtag', 'test_callback', 1 );
add_action( 'wp_ajax_fqtag', 'test_callback', 1 );
function print_js() { ?>
<script type="text/javascript">
jQuery.ajax({
url: 'wp-admin/admin-ajax.php',
type: 'POST',
action: 'fqtag',
data: {
'whatever': 'text'
},
success: function (output) {
alert(output);
}
});
</script>
<?php
}
add_action('wp_print_footer_scripts', 'print_js', 1000);
?>
解决方法:
去掉
<script>alert('echo');</script>
如果检查控制台,您的响应应该是回显.我怀疑以上所有代码都在你的插件函数文件中.基本上php函数应该放在函数文件中.
应将jquery放在要从中接收响应的模板中.
将它放在你的函数文件中…从类中删除jquery …
add_action('wp_print_footer_scripts', 'print_js', 1000);
function print_js() { ?>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery.ajax({
url: 'wp-admin/admin-ajax.php',
type: 'POST',
data: {
'action': 'test_callback',
'whatever': 'text'
},
success: function (output) {
alert(output);
}
});
});
</script>
<?php
}
把它移到你的课外……
function test_callback() {
$whatever = 8;
echo $whatever;
die();
}
add_action( 'wp_ajax_nopriv_testaction', 'test_callback' );
add_action( 'wp_ajax_testaction', 'test_callback' );
内容总结
以上是互联网集市为您收集整理的javascript – WordPress AJAX不起作用 – 响应0全部内容,希望文章能够帮你解决javascript – WordPress AJAX不起作用 – 响应0所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。