Wordpress - создается с помощью AJAX - PullRequest
0 голосов
/ 04 мая 2018

Я хочу сделать фильтр с флажками в Wordpress. Чего я в первую очередь хочу добиться, так это протестировать его и отправить переменную с ajax на флажок в форме.

Вот форма с флажками:

<form  method="post" id="filter">
<input type="checkbox" name="f" value="1" onchange="this.form.submit()" <?php if  ($face =='1') {echo 'checked';}?>
<input type="checkbox" name="t" value="1" onchange="this.form.submit()" <?php if ($twitter=='1') {echo 'checked';}?>    
<input type="hidden" value="myfilter"> 
</form>

Вот JavaScript:

jQuery(document).ready( function(){  
    jQuery('#content').on('submit', '#filter', function(e) {
        e.preventDefault();     
        var test = jQuery('#test-btn').data( 'id' );

        jQuery.ajax({           
            url : rml_obj.ajax_url,
            type : 'post',
            data : {
                action : 'test_function',
                security : rml_obj.check_nonce,
                test_data : test
            },
            success : function( response ) {
                alert (test);               
                jQuery('#result').html(response);

            }
        }); 
    });
});

Вот функция в functions.php:

function test_function() {  
    check_ajax_referer( 'rml-nonce', 'security' );  
    $test_data = $_POST['test_data'];
    echo $test_data; 
    die();
}
add_action('wp_ajax_test_function', 'test_function'); 
add_action('wp_ajax_nopriv_test_function', 'test_function');

Пока я просто пытаюсь это проверить. Поэтому, когда пользователь нажимает на флажок в форме, вызывается ajax. Но я застрял. Если я добавлю эту строку в действие action="<?php echo site_url() ?>/wp-admin/admin-ajax.php", то при отправке я застряну на URL-адресе ajax: admin-ajax.php. Если я удаляю строку действия из формы, то страница просто перезагружается.

Когда я использую щелчок по элементу, вместо отправки формы мне это удается. Но мне нужно, чтобы он работал при отправке формы, чтобы я мог реализовать фильтрацию, установив флажки в различных флажках.

Если кто-нибудь может сказать мне, что я делаю неправильно, я буду опираться на это и фактически отправлять значения-флажки из формы и выполнять запрос в функции для фильтрации данных.

1 Ответ

0 голосов
/ 08 мая 2018

Проблема была в форме onchange="this.form.submit()". После удаления этой части я смог продолжить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...