如何使用带有Wordpress插件的ajax进行过滤?

时间:2014-07-16 08:14:50

标签: jquery ajax wordpress wordpress-plugin

我有下拉元素,在选择一个项目时我需要从数据库中查询并在第二个下拉列表中显示结果。

我有几个下拉菜单,我需要缩小过滤器。

我必须用ajax来做,但我是新手。我应该在哪里编写查询语句以及将哪个路径放入URL

因为我在WP中这样做,我是否总是必须在WP中使用url:admin-ajax.php默认值?

//dropDownKlix ajax call
    jQuery("#dropDownKlix").change(function(){
        jQuery.ajax({
            url: 'admin-ajax.php',
            data: {"name":"name","value":$("#dropDownKlix option:selected").val()},
            type: 'POST',
            dataType: "json",
            success: function(data) {
                alert('Success!');
            }
        });
    });

这是我的ajax请求,但我不知道在哪里放sql语句来过滤和检索数据以显示在另一个下拉列表中。

我应该进行回调查询还是?

如果您需要更多信息,请问我。

1 个答案:

答案 0 :(得分:2)

  

这是我的ajax请求,但我不知道在哪里放sql语句来过滤和检索数据以显示在另一个下拉列表中。

您应该使用wp_ajax_{action}挂钩为AJAX请求创建自定义处理程序。

在您的AJAX请求中,您应该将action属性设置为{action}。例如:

AJAX请求示例:

jQuery.ajax({
    type: 'POST',
    url: 'admin-ajax.php',
    dataType: 'json',
    data: {
        'action' : 'your_action',
        'name' : 'name',
        'value' : $( '#dropDownKlix option:selected' ).val()

    },
    success:function( data ) { ...

自定义处理程序示例:

function my_handler() {
    // Handle the request then generate a response.
}
add_action( 'wp_ajax_your_action', 'my_handler' );

如果您要处理前端未授权用户的请求,请使用wp_ajax_nopriv_{action}

有关详细信息,请参阅AJAX in Plugins文章。

参考: