Intereting Posts
Изменить сообщение об ошибке «файл не поддерживается» Фильтр шаблонов для пользовательских таксономических условий Требуется плагин для загрузки WordPress Получить общее имя таксономии для пользовательского типа сообщения Как скрыть теги, которые были использованы только один раз? WordPress сбой «Услуга недоступна» после попытки обновления плагинов Откорректируйте запрос на одном Ограничить просмотр сообщения как на передней, так и на бэкэнд? Продажа уникального продукта с woocommerce – упрощенная Пусть посетители публикуют комментарии на странице категории Как войти в систему по электронной почте только без имени пользователя? Изменения виджета в дочерней теме Возможно ли, чтобы плагин предотвратил установку определенных плагинов? как изменить порядок отображения товаров в wp электронной коммерции есть действие update_post_meta

Как передать идентификатор гиперссылки на обработчик ajax?

Итак, я создал такое «выпадающее меню» в пользовательском шаблоне страницы

<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> <?php global $wpdb; $select = $_POST['department_id']; $sql="SELECT DISTINCT department, department_id FROM employee WHERE department_id NOT IN ('19', '21');"; $resultDropdown = $wpdb->get_results($sql, ARRAY_A); ?> <?php foreach($resultDropdown as $d): ?> <a class="dropdown-item" href="" id= "<?php echo $d['department_id'];?>"><?php echo $d['department']; ?></a> <?php endforeach; ?> </div> 

и это мой js-файл

  jQuery(document).ready( function($) { $("dropdown-item").click( function() { var data = { action: 'get_data', id: $(this).attr('id') }; jQuery.ajax({ url: '/wp-admin/admin-ajax.php', data: data , method: 'GET', dataType: 'text', function(response) { console.log(response); alert(data); } }); }); }); 

и это моя функция get_data в functions.php

 function get_data() { global $wpdb; $o=$_GET['id']; $result2 = $wpdb->get_results("SELECT `firstname`, `lastname`, `department`, `phone`,`job_title`, `cell_phone`, `image`, `email`, `address`, `room`FROM employee WHERE department_id=" . $o ); foreach($result2 as $r){ echo '<div class="info-block bg-grey mb-2 pa-2">'; echo '<h4 class="h4 underline-sm">' . $r['firstname'] . " " . $r['lastname'] . " </h4>"; echo '<div class="col-sm-8 text-xs-left">'; echo ' <p class="mb-1"><b>' . $r['job_title'] ; echo 'Tööruum: ' . $r['room']; echo '</b></p>'; echo '<a href="mailto:' . $r['email'] . '">' . $r['email'] . '></a>'; echo '<p class="mb-0">' . $r['phone'] . " " . $r['cell_phone'] . '</php></p>'; echo '</div>'; echo '<div class=" col-sm-4 text-xs-right mb-1">'; echo ' <img src="' . $r[image] . '" class="rounded-circle lg" alt="">'; echo '</div>'; echo '</div>'; echo '</div>'; } echo $result2; wp_die(); } add_action( 'wp_ajax_nopriv_get_data', 'get_data' ); add_action( 'wp_ajax_get_data', 'get_data' ); 

и я выделил его в функции php

  function my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/getData.js', array('jquery') ); $data = array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ); } add_action( 'wp_enqueue_scripts', 'my_enqueue' ); 

Но я не понимаю, почему я не могу получить какие-либо результаты? Единственное, что я получаю, это пустые скобки [], когда я кодирую его в JSON и использую dataType JSON в js-файле. и почему-то я слишком тупой, чтобы создавать правильные блоки кода здесь – извините за это. Но где я совершил ошибку?

EDIT: Теперь я могу получить данные как JSON. Но когда я использую foreach, он не работает, я получаю только два первых строки данных. Как я могу положить результат

 [{"firstname":"Avely","lastname":"Ahja","department":"Pesumaja","phone":null,"job_title":"pesumaja operaator" ,"cell_phone":null,"image":null,"email":null,"address":null,"room":null},{"firstname":"Elvira","lastname" :"Jakobson","department":"Pesumaja","phone":null,"job_title":"pesumaja operaator","cell_phone":null,"image" :null,"email":"elvira.jakobson@khk.ee","address":null,"room":null}] 

к этому элементу HTML? как firstname в $ r ['firstname']?

Solutions Collecting From Web of "Как передать идентификатор гиперссылки на обработчик ajax?"