嗨,我在制作我的功能结构时遇到了一些问题。非常感谢任何帮助。
首先,此功能应在 index.php 触发 OnChange 事件后删除地图标记。
并将post值发送到 xmlmapquery.php 以进行数据检索。
一旦检索到,数据应存储回<div id='content'>
function filter()
{
for (var i = 0; i < markersArray.length; i++ ) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
var lgu = $('#lgu').val();
var category = $('#category').val();
var type = $('#type').val();
$.get('xmlmapquery.php', { filter: lgu, filter2: category, filter3: type},function(data){
$('#content').text(data);
)};
};
现在这是 xmlmapquery.php
<?php
include('connection_db.php');
// Start XML file, create parent node
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
if(isset($_POST['filter']) && isset($_POST['filter2']) && isset($_POST['filter3'])){
$query = "SELECT * FROM markers WHERE type='".$_POST['filter']."' and type='".$_POST['filter2']."'
and type='".$_POST['filter3']."'";
}
// Select all the rows in the markers table
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("name",$row['name']);
$newnode->setAttribute("address", $row['address']);
$newnode->setAttribute("lat", $row['lat']);
$newnode->setAttribute("lng", $row['lng']);
$newnode->setAttribute("type", $row['type']);
}
echo $dom->saveXML();
?>
非常感谢这方面的帮助。目前该功能 NOT 即使删除标记也无法正常工作。一旦我得到这个东西工作,我将添加更多的命令到该函数,将获取数据并为我的地图创建新的标记。提前谢谢。
答案 0 :(得分:2)
假设您的脚本逻辑正常,并且没有die()
或其他php方法返回null或false(无论如何,您应该在浏览器控制台中看到)。
要做的事情是:
1 - 启动请求时检查firebug / chrome /浏览器控制台(如果以某种方式隐藏请求,请使用控制台中的“save”请求方法来检查)
2 - 使用var_dump($dom->saveXML());
代替echo $dom->saveXML();
3 - 尽可能检查服务器/ php日志
4 - 请确保您的请求是完整且有效的,我指的是$.get('xmlmapquery.php');
如果您按照这一行进行调试,除非ghost不存在,您将能够轻松地运行脚本。
希望它会有所帮助