【问题标题】:Retrieve XML Node With Specific Value In downloadURL在 downloadURL 中检索具有特定值的 XML 节点
【发布时间】:2012-06-18 12:41:30
【问题描述】:

我想知道是否有人可以帮助我。首先,我很抱歉这是一个非常基本的问题,我对使用 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

我认为我可以通过上面加载的 PHP 查询来做到这一点,即 loadallmyfinds 使用 GET 子句,但遗憾的是这不起作用。

我已经对此进行了一些研究,并且我相信,根据我有限的知识,我可以通过 XML 实现这一点,但我真的不确定如何实现它。

我只是想知道是否有人可以看看这个并提供一些关于我如何处理它的指导,以便过滤记录。

非常感谢和亲切的问候

【问题讨论】:

    标签: php javascript xml google-maps-api-3


    【解决方案1】:

    您在$idnum 中有用户ID。所以,请从这里更改您的 ajax 请求:

    downloadUrl("loadallmyfinds.php", function(data) {

    到这里:

    downloadUrl("loadallmyfinds.php?id=&lt;?php echo $idnum?&gt;", function(data) {

    loadallmyfinds.php 文件中:

    旧评论

    我猜你可以将用户 ID 存储在会话中 ($_SESSION['uid']=$userId;)

    ...在您的 loadallmyfinds.php 文件中,读取此会话变量并仅返回与该用户相关的内容。

    【讨论】:

    • 嗨@Pushpesh,感谢您回复我的帖子。不幸的是,我无法将会话开始合并到我的代码中,因为我正在使用一个使用Session 变量处理membership 类型的软件。正如我所说,我认为最好的方法是通过 XML 路由。亲切的问候
    • 好的,据我了解,loadallmyfinds.php 为所有用户返回一个 XML,并且您希望一次将其限制为特定用户,对吗?让我知道,我们可以找到解决方案。
    • 嗨@Pushpesh,非常感谢您对此的持续帮助。是的,基本上loadallmyfinds.php 从 MySQL 数据库中提取数据。然后通过 XML 解析 PHP 脚本,并且您假设我只希望返回当前用户的记录是正确的。我已将 XML 输出示例添加到我的原始帖子中,这可能会有所帮助。亲切的问候
    • 嗯,正如您所说,您的用户 ID 格式为 $idnum..尝试将其传递给您的 ajax 请求。请查看我修改后的回复。
    • 嗨,谢谢。请让我从你身边跑过去,因为 PHP 脚本不返回任何标记。在我的主脚本中,我使用了这个:downloadUrl("loadallmyfinds.php?userid=&lt;?php echo $idnum?&gt;", function(data) {,然后在我的loadallmyfinds.php 脚本中我使用了这个:$_SESSION['userid']=$userid;,在查询本身中,我将它添加到了末尾finds.userid='$userid'。如果我正确地做到了这一点,不幸的是它不起作用,并且地图上没有填充标记。我检查了 JS Console 并且没有创建错误。亲切的问候
    猜你喜欢
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    相关资源
    最近更新 更多