Коллеги, ничего не понимаю )))
Суть задачи: по клику на пункте меню вывести контент из БД, соответствующий кликнутому пункту.
Я пошел кривым путем ))) Меню выводится нормально, здесь детали опущу. На странице меню получается вида:
<div id="navblock">
<ul class="group">
<li class="line">Пункт (уровень 0)</li>
<ul class="group">
<li class="line">Пункт (уровень 1)</li>
<ul class="group">
<li class="line">Пункт (уровень 2)</li>
</ul>
<li class="line">Пункт (уровень 1)</li>
</ul>
<li class="line">Пункт (уровень 0)</li>
<ul class="group">
<li class="line">Пункт (уровень 1)</li>
</ul>
</ul>
</div>
Далее, нажатие на любой пункт отрабатываю JavaScript'ом и передаю данные AJAX'ом PHP-обработчику.
JavaScript + AJAX:
$(document).ready(function() {
$('.line').on('click',function () {
var inner = this.innerText;
$('.content_title').text(inner);
$.ajax({
type: 'POST',
url: './includes/excerpt_cls.php',
data: {bd_item: inner},
success: function(data){
console.log('success'+'\n'+'data =>'+data);
},
error:function(data){console.log('error');}
});
});
});
Ну, и напоследок, крайне простой PHP:
<?php
class Excerpt {
public static function getPOST() {
if(isset($_POST['bd_item'])) {echo "POST is set" . '<br>' . $_POST['bd_item'];}
else echo "POST is not set";
}
}
?>
На странице в index.php все это безобразие отображается тоже крайне просто:
<div class="container-fluid">
<div class="d-flex flex-row">
<div class="d-flex flex-column-3">
<div class="leftside">
<p class="text-center nav_header">заголовок меню</p>
<div id="navblock">
здесь вызывается класс, формирующий меню
</div>
</div>
</div>
<div class="d-flex flex-column-9">
<div class="content">
<p class="content_title">все ссылки</p>
<?php Excerpt::getPOST(); ?>
</div>
</div>
</div>
</div>
И вот в чем проблема: POST-запрос попадает в PHP-обработчик пустым. В той конфигурации, которая указана, в консоли появляется "success data =>", т.е. данные переданы, но параметр AJAX data пуст. В точке вызова класса Excerpt всегда, что бы я не кликал, висит "POST is not set". Но вот если я буду проверять просто наличие массива POST (т.е.
if(isset($_POST))...
, то появляется "POST is set", но с ошибкой обращения к индексу bd_item.
Я, видимо, вообще не понимаю основ...