AJAX Wordpress Вставка - PullRequest
       0

AJAX Wordpress Вставка

0 голосов
/ 20 января 2020

У меня есть кнопка «Завершено / завершено» на странице пользовательского типа сообщения.

И это работает, когда кто-то нажимает кнопку, он отправляет нужные данные в БД и добавляет отметки, которые он завершил, но я хочу преобразовать это в ajax, но сама кнопка не отправляет никаких данных. Я отправляю тип сообщения и идентификатор пользователя на сервер на основе сообщения, на котором они находятся. И я пытаюсь понять это.

В сингле. php

<form action='' method="post" class='comp-btn'>
   <input class='workout-submit' id="workout-submit"type='submit' name='complete' value='Complete'/>
 </form>

Это сообщение req

//Inserts row into database
if (isset($_POST['complete'])):
$wpdb->insert('wp_completed_workouts',
    array(
      userID => $current_userID,
      postID => $current_postID,
        )
    );
    endif;

TLDR: У меня есть этот пост просьба (это работает) Я хотел бы превратить в AJAX вызов. Потому что я не хочу его перезагружать каждый раз, когда кто-нибудь нажимает полную кнопку.

1 Ответ

0 голосов
/ 21 января 2020

Поскольку вы используете Wordpress, AJAX лучше всего работает при отправке данных в функции. php.

Во-первых, в вашем html / js файле:

$('.comp-btn').on('submit', function(){
    $.ajax({
        type: 'POST',
        url: "../../../../wp-admin/admin-ajax.php",
        data: {'action':'sendworkout','complete':$('.workout-submit').val()},
        success: function(response){
            console.log(response); // shows 'success'
            // do things here
        }
    });
});

Во-вторых, в ваших функциях WP. php

add_action('wp_ajax_sendworkout', 'sendworkout');
add_action('wp_ajax_nopriv_sendworkout', 'sendworkout');
function sendworkout(){
    $workoutcomplete = $_POST['complete'];
    if($workoutcomplete){
        //DB insert here
    }
    wp_send_json_success('success');
}

Обратите внимание, что синтаксис 'action' в ajax относится к имени функции в ваших функциях. php, а 'complete' относится к $ _POST ['complete'] в ваших функциях. php

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