Координаты карты изображения Hover с ajax не работает

У меня есть карта изображения с AJAX наведите курсор, чтобы получить информацию из таблицы базы данных major_occurrence. Но, похоже, он совсем не работает с вызовом ajax.

При наведении мыши можно нажимать, чтобы перенаправить на другой doRpMap.php показывая подробности происшествия.
Пожалуйста, посоветуйте по этому вопросу. Благодарю. * Простите, что я новичок в программировании.

Я делаю правильный путь для:

  1. переменная для обратного вызова getOccCount.php $result на моей главной странице?

  2. как вставить вызов ajax () в мой <span>?

getOccCount.php

<?php
$location_id = $_GET['location_id'];
$query = "SELECT COUNT(occurrence_id) FROM major_occurrence WHERE  '$location_id' = location_id GROUP BY location_id";
$result = mysqli_query($link, $query) or die(mysqli_error($link));
$array = mysql_fetch_row($result);                          //fetch result
echo json_encode($array);
?>

Главная страница

<style type="text/css">
#map {
margin:0;
padding:0;
width:950px;
height:1211px;
background:url(images/Campus-Map.jpg);
background-size: 950px 1211px;
font-family:arial, helvetica, sans-serif;
font-size:8pt;
}

#map li {
margin:0;
padding:0;
list-style:none;
}

#map li a {
position:absolute;
display:block;
background:url(blank.gif);
text-decoration:none;
color:#000;
}

#map li a span { display:none; }

#map li a:hover span {
position:relative;
display:block;
width:200px;
left:20px;
top:20px;
border:1px solid #000;
background:#fff;
padding:5px;
filter:alpha(opacity=80);
opacity:0.8;
}

#map a.rpc{
top: 1060px ;
left: 585px;
width: 78px;
height: 65px;
}
</style>
<body>
<script>
$(document).ready(function() {
$('#map span').hover(function () {
var $t = $(this);
var location_id = $t.attr("location_id");
$.ajax({
url: 'getOccCount.php',
data: "{location_id: location_id}",
dataType: 'json',
method: 'GET',
success: function (result) {
$t.html('Total Number of Occurrence: ' + result[0]);
}
}
});
});
</script>
<ul id="map">
<li><a class="rpc" href="doRPMap.php?location_id=1"><span location_id="1"><b>RPC</b></span></a></li>
</ul>
</body>

0

Решение

Полное решение потребует некоторой работы. Позвольте мне дать вам несколько идей. Я прошу прощения за проблемы с форматированием … функция {} здесь, кажется, не работает должным образом для меня.

  1. Как вы заявили, вы хотите запросить количество инцидентов для данного местоположения. В вашем getOccCount.php Я не вижу механизма передачи идентификатора местоположения. Похоже, что запрос всегда возвращает ВСЕ вхождения. Вы, вероятно, хотите добавить строку, похожую на

    $location_id = @$_REQUEST['location_id'];

    и используйте это значение в предложении WHERE в вашем запросе.

  2. <span> у вас в html нет атрибута location_id:

    <span><b>RPC</b></span>

    Поэтому строка, где вы пытаетесь получить этот атрибут, ничего не найдет:

    var location_id = $(this).attr("location_id");

  3. Вы делаете один и тот же вызов ajax дважды, двумя разными способами. Весь блок, начиная с $.ajax({ звонит getOccCount.phpОднако я не вижу, что вы делаете что-то с data перешел на успех обратного вызова.
    Затем снова в функции обратного вызова успеха вы пишете $.get("getOccCount.php", ... который по сути делает тот же вызов снова. На этот раз вы пытаетесь передать location_id параметр, который мы уже знаем, не рассматривается в getOccCount.php,

  4. Где вы пытаетесь сохранить результат обратно в span что пользователь завис над вами $('#map>span') в качестве селектора, который будет хранить результат в ВСЕ охватывает.

Итак, начало вашего решения может выглядеть так:

<body>
<script>
$(document).ready(function() {
$('#map span').hover(function () {
var $t = $(this);
var location_id = $t.attr("location_id");
$.ajax({
url: 'getOccCount.php',
data: "{location_id: location_id}",
dataType: 'json',
method: 'GET',
success: function (result) {
$t.html('Total Number of Occurrence: ' + result[0]);
}
});
});
});
</script>
<ul id="map">
<li><a class="rpc" href="doRPMap.php?locID=1"><span location_id="1"><b>RPC</b></span></a></li>
</ul>
</body>

Как я уже сказал, полное решение потребует больше работы, особенно при передаче location_id в ваш запрос. Надеюсь, что мои идеи помогут добиться прогресса.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]