Запрос AJAX

Ajax

Подключаем библиотеку JQUERY


<script type='text/javascript' src='http://rubicksoft.ru/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script>

Вставляем форму


<div class="query-box" >
    <form id="query-form" action="query-form" method="post">
        <p class="query-status"></p>
        
        <input id="query-param1" class="query-param1" type="text" placeholder="Параметр 1" name="query-param1" />
        <input class="submit_button1" type="submit" value="Ответ" name="submit">
        
        <?php wp_nonce_field( 'ajax-query-nonce', 'security' ); ?>
    </form>
    
</div>

Вставляем код в фаил functions.php


function ajax_query_init(){
    
    /* Подключаем скрипт для авторизации */
    wp_register_script('ajax-query-script', get_template_directory_uri() . '/js/ajax-query-script.js', array('jquery') ); 
    wp_enqueue_script('ajax-query-script');


    /* Локализуем параметры скрипта */
    wp_localize_script( 'ajax-query-script', 'ajax_query_object', array( 
      'ajaxurl' => admin_url( 'admin-ajax.php' ),
      'redirecturl' => $_SERVER['REQUEST_URI'],
      'loadingmessage' => __('Проверяются данные, секундочку...')
    ));

    // Разрешаем запускать функцию ajax_login() пользователям
    add_action( 'wp_ajax_ajaxquery'       , 'ajax_query' ); // Для зарегистрированных пользователей
    add_action( 'wp_ajax_nopriv_ajaxquery', 'ajax_query' ); // Для не зарегистрированных пользователей
}

// Выполняем авторизацию только если пользователь не вошел
add_action('init', 'ajax_query_init');

function ajax_query(){

    // Первым делом проверяем параметр безопасности
    check_ajax_referer( 'ajax-query-nonce', 'security' );

    // Получаем данные из полей формы и проверяем их
    $query_param1 = array();
    $query_param1 = $_POST['query-param1'];
    
    // Обрабатываем полученные данные
    if ($query_param1 == '')
    {
        echo json_encode( array('message'=>"Введите пожалуйста информацию!") );
    }
    else {
        global $wpdb;
        $fivesdrafts = $wpdb->get_results( "SELECT id, user_login, user_pass FROM " . $wpdb->prefix . "users WHERE id = $query_param1 " );
        if($fivesdrafts){
            foreach ( $fivesdrafts as $fivesdraft ) {
                echo json_encode( array('message'=>"$fivesdraft->id $fivesdraft->user_login $fivesdraft->user_pass<br>") );
            }
        }
        else {
            echo json_encode( array('message'=>"Ваша информация \"$query_param1\" в базе не найден!") );
        }
    }
    
    wp_die();
}

Создаем файл /js/ajax-query-script.js


jQuery(document).ready(function($) {

  $('.query-box #query-form').on('submit', function(e){
    $('.query-box .query-status').show().text(ajax_query_object.loadingmessage);
    $.ajax({
      type: 'POST',
      dataType: 'json',
      url: ajax_query_object.ajaxurl,
      data: { 
        'action': 'ajaxquery', //calls wp_ajax_nopriv_ajaxlogin
        'query-param1': $('.query-box #query-param1').val(), 
        'security': $('.query-box #security').val()
      },
      success: function(data){
        $('.query-box .query-status').text(data.message);
      }
    });
    e.preventDefault();
  });

});

 

Об авторе

Ремонт компьютеров, создание web сайтов
Напишите свой комментарий

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

4 × 2 =