我想知道是否有人可以帮助我。首先,我对一些非常基本的问题表示道歉,我对使用XML非常陌生,所以请耐心等待。
我正在使用此部分代码从MySQL数据库成功加载标记数据,并将它们放在Google地图上。
downloadUrl("loadallmyfinds.php", function(data) {
var xml = parseXml(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
// obtain the attribues of each marker
var lat = parseFloat(markers[i].getAttribute("findosgb36lat"));
var lng = parseFloat(markers[i].getAttribute("findosgb36lon"));
var point = new google.maps.LatLng(lat,lng);
var locationname = markers[i].getAttribute("locationname");
var finddescription = markers[i].getAttribute("finddescription");
var html = "<b>" + 'Description: ' + "</b>" + finddescription;
var findcategory = markers[i].getAttribute("findcategory");
// create the marker
var marker = createMarker(point,html,locationname,finddescription,findcategory);
}
XML输出
<markers>
<marker userid="27" findid="1" locationname="Test Location 1" findosgb36lat="53.0000" findosgb36lon="-1.00000" osgridref="" dateoftrip="21/06/2012" findcategory="Artefact" finddescription="A rare Roman vase."/>
</markers>
我遇到的问题是,在当前状态下,无论用户是谁,都会检索所有记录,但是如果userid
元素值与变量匹配,我需要更具体地说明这个用户我的表格是$idnum
。
我认为我可以通过上面的loadallmyfinds
使用GET
子句加载的PHP查询来做到这一点,但遗憾的是这不起作用。
我已经对此做了一些研究,我相信,从我有限的知识,我可以通过XML实现这一点,但我真的不确定如何实现它。
我只是想知道是否有人可能会看到这个并提供一些关于如何进行此操作的指导,以便过滤记录。
非常感谢和亲切的问候
答案 0 :(得分:0)
您在$idnum
中拥有用户ID。所以,请改变你的ajax请求:
downloadUrl("loadallmyfinds.php", function(data) {
到此:
downloadUrl("loadallmyfinds.php?id=<?php echo $idnum?>", function(data) {
并在loadallmyfinds.php
文件中:
OLD COMMENT
我猜你可以在会话中存储用户ID($_SESSION['uid']=$userId;
)
...并在您的loadallmyfinds.php
文件中,阅读此会话变量并仅返回该用户相关内容。