# erricss (05.06.2019 / 05:09)Сработает, только обработку xhr запроса надо вынести выше вывода html
я нажал на div, сработает ли php на этой же странице?
пример (+/-)
// С БД йето не нада
$region = [
4 => [
'country_id' => '4',
'name' => 'Афганистан',
'mainland' => 'Азию',
],
20 => [
'country_id' => '20',
'name' => 'Андорра',
'mainland' => 'Европу',
],
44 => [
'country_id' => '44',
'name' => 'Багамы',
'mainland' => 'Америку',
],
];
if (!empty($xhr = filter_input(INPUT_SERVER, 'HTTP_X_REQUESTED_WITH', FILTER_DEFAULT))
&& strtolower($xhr) == 'xmlhttprequest'
&& $id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT)) {
// Йето заменить на запрос к БД
echo json_encode($region[$id]);
exit;
}
echo '<html>
<head>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style>.some_class{padding: 7px;}#wrappep>.some_class{cursor: pointer;}.color-green{color: green;}</style>
</head>
<body>';
echo '<div id="wrappep" class="wrappep">';
foreach($region as $key => $val) {
echo '<div class="some_class" data-id="' . $key . '">' . $val['name'] . '</div>'."\n";
}
echo '</div>';
echo '<div class="some_class" data-id="no-id">No Click</div>'."\n";
echo '<script>
let orig = $("#wrappep").html();
$("#wrappep").on("click", ".some_class", function () {
let id = $(this).attr("data-id");
$.ajax({
url: "?id="+id,
success: function (result) {
let region = $.parseJSON ( result );
$(".some_class[data-id=" + region.country_id + "]").append("<span class=\'color-green\'> Вы угодили пальцем в " + region.mainland + "</span>").css("cursor", "default");
}
});
$("#wrappep").html(orig);
});
</script>';
echo '</body>
</html>';