마커를 클릭하면 listview에서 마커와 관련된 데이터를 추출하기 위해 mysql 쿼리에서 마커 ID를 사용하려는 Google 맵/마커 애플리케이션이 있습니다. .mysql 쿼리에서 javascript 변수를 사용하여 listview를 채우십시오.
변수는 마커를 클릭 할 때 할당되며 ajax를 사용하여 mysql 쿼리에 사용할 변수에 대한 값을 PHP 파일로 전송합니다.
JS 성공
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
var site_id = marker.get("id");
$.ajax({
url: 'getoffer.php',
type: "POST",
data: { site: site_id},
success: getoffers
});
});
}
나는 데이터베이스 값으로 목록보기를 채우는 getoffers의 함수를 호출했습니다.
var output1 = '';
function getoffers() {
$.post("getoffer.php?getjson", function(data) {
var data = JSON.parse(data);
console.log(data);
$.each(data, function(index, value){
output1 += '<li data-id='+ value.offer_id +'><a href="#"">' + value.offer_title + '</a></li>';
});
$('#offerlist').html(output1).listview().listview('refresh');
});
}
PHP
<?php
$site = $_POST['site_id'];
require("dbconnect.php");
try {
$DBH = new PDO("mysql:host=$server;dbname=$database;charset=utf8", $username, $password,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
}
catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
$STH = $DBH->prepare("SELECT * FROM Offer WHERE site_id='$site'");
$STH->execute();
$arr = $STH->fetchAll();
echo json_encode($arr);
die();
내가 거기에 오류가 없지만 목록보기가 비어 응용 프로그램을 실행.
SQL에서 아약스 코드와 where 절을 제거하면 코드가 해당 테이블의 모든 값을 반환하므로 db 연결 및 listview에 대한 출력과 관련하여 작동합니다. 아약스에서 전달되는 변수가 잘못되거나 코드를 잘못 호출해야합니다.
모든 조언을 크게 듣습니다. 고마워요
'시를 te' (첫 번째 예제에서)이지만 PHP에서는'site_id'를 검색하고 있습니다. getoffers()에서'getoffer.php' *에 다시 올리는 이유와'site' 또는'site_id'가없는 이유를 확신 할 수 없습니다. 아마도'getoffers() '의 매개 변수로'data' 만 원할 것입니다. –