当前位置: 首页 > 面试题库 >

Wordpress AJAX不起作用-响应0

钱修雅
2023-03-14
问题内容

我想在我的插件中添加AJAX支持,而这个简单的东西有很大的问题。WordPress不允许我使用普通的AJAX,我需要使用WordPress版本。

在任何时候,WordPress函数(应生成输出)都返回0。我认为原因是WP不会触发“函数”。我试图强制该功能多次运行,但是我不知道我可以改进什么。

<?php
public function widget( $args, $instance ) {

$options = get_option('Free_Quotation_html" target="_blank">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(); 
}
}

我尝试添加alert(’echo’); 测试功能,但没有任何效果。我认为AJAX无法运行适当的功能:fq_tag_support_callback()。

一开始,我对ajaxurl变量有疑问。未定义。这不是正常情况。我尝试通过使用以下方法解决此问题:

var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";

您有什么想法,我该如何解决这个问题?

-–编辑—与David讨论后,我得到了这样的文件(所有时间都不起作用)

<?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>

如果您检查控制台,您的回应应该是echo。我怀疑以上所有代码都在您的插件功能文件中。基本上,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' );


 类似资料:
  • 我使用maven的Tomcat7插件来运行和调试应用程序,所以当我调试时,我可以看到@ExceptionHandler正在触发和执行return语句。但是我得到的不是JSON而是HTTP 500错误: 如果我返回一个视图或ModelView正在工作,但每当我试图返回ResponseBody或ResponseEntity时,我仍然会得到相同的错误。 最后,如果我不使用tomcat,而是使用Sprin

  • 这是我第一次使用jersey编写RESTAPI程序。当我试图用XML返回响应时,我的rest API给了我一个错误代码500,但它对JSON很好。 有人能告诉我我做错了什么吗? 控制台中没有显示错误。 我的客户阶层 我的pom.xml

  • 我在wordpress的论文框架中使用下面给出的媒体查询。但它不起作用。我也从这些答案中得到了帮助,但仍然不起作用。 响应型网站可在桌面上运行,但不能在移动设备上运行 响应媒体查询不工作 当我在此处检查此查询时http://www.responsinator.com/?url=http://www.lvticketattorney.com/ 它正在工作。但当我在移动设备上检查它时,它不工作。 媒体

  • 问题内容: 我试图将onscroll事件处理程序添加到特定的dom元素。看下面的代码: 代码非常简单,如您所见,我想处理div#list滚动。当我运行此示例时,它不起作用。所以我尝试直接在render方法上绑定this._handleScroll,它也不起作用。 因此,我打开了chrome inspector,直接使用以下命令添加了onscroll事件: 它正在工作!我不知道为什么会这样。这是Re

  • 问题内容: 为什么colspan属性在React中不起作用?我创建了呈现以下内容的简单组件: 编辑:解决 这是解决方案。React期望属性名称为 colSpan ,而不是colspan。在浪费了荒谬的时间去发现这个小小的邪恶事实之后,想出了这一点。 问题答案: 来自React的DOM差异文档: 所有DOM属性和属性(包括事件处理程序)都应包含驼峰,以与标准JavaScript样式保持一致。 如果您

  • 我在Android和Arduino之间找到了蓝牙的源代码,我复制并粘贴了它。 它没有显示任何代码错误。 当我试图运行它时,它会因消息而中断 问题出在哪里,怎么办? 以下是源代码: