Я пытаюсь вставить строки в созданную мной таблицу на основе ответов пользователя. Я создал дочернюю тему и собственный шаблон для страницы с формой. Моя проблема в том, что у меня нет возможности узнать, что происходит не так, где и почему не вставляются данные. Моя js функция onclick выглядит следующим образом, и этот файл называется question_submit. js:
jQuery(document).ready(function(){
jQuery("#questionSubmit").click(function(){
alert("clicked");
jQuery.ajax({
type: 'POST',
dataType: 'json',
url: my_ajax_object.ajax_url,
data: {
'action' : 'dbtest',
'option': 1,
},
success: function(data){
alert(data);
}
});
})
});
Вот где я помещаю скрипт в очередь:
function my_enqueue() {
wp_enqueue_script( 'question_submit', get_stylesheet_directory_uri() . '/assets/js/question_submit.js', array('jquery') );
wp_localize_script( 'question_submit', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue' );
И, наконец, здесь - это функция, связанная с действием:
function dbtesting(){
global $wpdb;
$data = $_POST['data'];
//$option = sanitize_text_field($_POST["option"]);
$tableName = 'user_answers';
$insert_row = $wpdb->insert(
$tableName,
array(
'user_id' => 2,
'module_id' => 3,
'section_id' => 1,
'question_id' => 2,
'option_no' => 1,
)
);
// if row inserted in table
if($insert_row){
echo json_encode(array('res'=>true, 'message'=>__('New row has been inserted.')));
}else{
echo json_encode(array('res'=>false, 'message'=>__('Something went wrong. Please try again later.')));
}
wp_die();
}
add_action( 'wp_ajax_dbtest', 'dbtesting' );
add_action( 'wp_ajax_nopriv_dbtest', 'dbtesting' );
Обе эти функции находятся в файле functions. php моей дочерней темы. Прямо сейчас я использую жестко запрограммированные значения только для проверки функциональности, позже эти значения будут зависеть от ответов формы.
Когда я нажимаю кнопку отправки, в моей таблице нет изменений, но также нет php ошибок.