使用jQuery ajax函数将php值发送到php函数

时间:2017-10-28 16:16:46

标签: javascript php jquery ajax wordpress

我有一个基于类别过滤帖子的ajax表单。 设置:

  1. HTML表单
  2. PHP函数回显输出
  3. jQuery ajax请求加载php 功能
  4. 问题:如何从jQuery ajax函数中解析php函数($ test,见下文)的值?

    表单 - 输出html选择字段和按钮以过滤帖子

    <form action="<?php echo site_url() ?>/wp-admin/admin-ajax.php" method="POST" id="filter">
        <?php
            if( $terms = get_terms( 'category', 'orderby=name' ) ) : // to make it simple I use default categories
                echo '<select name="categoryfilter"><option>Select category...</option>';
                foreach ( $terms as $term ) :
                    echo '<option value="' . $term->term_id . '">' . $term->name . '</option>'; // ID of the category as the value of an option
                endforeach;
                echo '</select>';
            endif;
        ?>
            <button>Apply filter</button>
        <input type="hidden" name="action" value="myfilter">
    </form>
    <div id="response"></div>
    

    PHP函数 - 在HTML表单中单击按钮时输出结果

    function misha_filter_function($test){
    
    // Do something with $test, but how to parse it with jQuery into this php function?     
    
    $args = array(
                'orderby' => 'date', // we will sort posts by date
                'order' => $_POST['date'] // ASC или DESC
            );
    
            // for taxonomies / categories
            if( isset( $_POST['categoryfilter'] ) )
                $args['tax_query'] = array(
                    array(
                        'taxonomy' => 'category',
                        'field' => 'id',
                        'terms' => $_POST['categoryfilter']
                    )
                );
    
            $query = new WP_Query( $args );
    
            if( $query->have_posts() ) :
                while( $query->have_posts() ): $query->the_post();
                    echo '<h2>' . $query->post->post_title . '</h2>';
                endwhile;
                wp_reset_postdata();
            else :
                echo 'No posts found';
            endif;
    
            die();
        }
    
    
        add_action('wp_ajax_myfilter', 'misha_filter_function');
        add_action('wp_ajax_nopriv_myfilter', 'misha_filter_function');
    

    jQuery - 问题:如何解析php值$ test到上面的php函数?

    jQuery(function($){
        $('#filter').submit(function(){
            var filter = $('#filter');
            $.ajax({
                url:filter.attr('action'),
                data:filter.serialize(), // form data
                type:filter.attr('method'), // POST
                beforeSend:function(xhr){
                    filter.find('button').text('Processing...'); // changing the button label
                },
                success:function(data){
                    filter.find('button').text('Apply filter'); // changing the button label back
                    $('#response').html(data); // insert data
                }
            });
            return false;
        });
    });
    

1 个答案:

答案 0 :(得分:0)

您按以下方式序列化数据:

content