Вставка данных в WordPress с использованием Ajax - PullRequest
0 голосов
/ 29 августа 2018

В WordPress я пытаюсь вставить данные в базу данных с помощью Ajax.

functions.php

function dataInsert(){
    global $wpdb, $slidecount;
    $slidecount = 25;
    $wpdb->insert(
        'custom_table',
        array(
            'slidecount'=> $slidecount
        )
    );
    die();
    return true;
}
add_action('wp_ajax_dataInsert', 'dataInsert');
add_action('wp_ajax_nopriv_dataInsert', 'dataInsert');

JavaScript // Я поместил функцию insertDataJS в footer.php

<script>
function insertDataJS(){
   console.log("insertDataJS start");
   jQuery.ajax({
      type: 'POST',
      url: dataInsert.ajaxurl,
      data: {"action": "dataInsert"},
      success: function(data){
           //alert(data);
      }
   });
   console.log("insertDataJS end");
}
</script>

Когда я пытался вызвать функцию insertDataJS(), я получаю сообщения об ошибках ниже:

Uncaught ReferenceError: dataInsert не определен на insertDataJS ((индекс): 303) на HTMLDivElement. ((Индекс): 444) в HTMLDivElement.dispatch (jquery.js? ver = 1.12.4: 3) в HTMLDivElement.r.handle (jquery.js? ver = 1.12.4: 3) в Object.trigger (jquery.js? ver = 1.12.4: 3) в n.fn.init.triggerHandler (jquery.js? ver = 1.12.4: 3) at Object.changeTo (eval at (Layerslider.kreaturamedia.jquery.js? ver = 6.7.6: 13), : 1: 53999) в Object.eval (eval в (Layerslider.kreaturamedia.jquery.js? ver = 6.7.6: 13), : 1: 131 795) в Object.g._callback (greensock.js? ver = 1.19.0: 20) на Object.g.render (greensock.js? ver = 1.19.0: 21)

Пожалуйста, поделитесь любой идеей!

1 Ответ

0 голосов
/ 29 августа 2018

Как подсказали @Inazo и @Outsource в своем ответе, я использовал их, используя переменную javascript ajaxurl для ссылки на файл admin-ajax.php. Я объявил об этом во внешнем интерфейсе, добавив следующее в footer.php моей темы.

<script type="text/javascript">
    var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...