2012-06-18 4 views
0

Je me demande si quelqu'un peut m'aider s'il vous plaît. Tout d'abord, je m'excuse pour certains d'être une question très simple, je suis très novice dans le travail avec XML, alors s'il vous plaît, gardez-moi. J'utilise cette section de code pour charger avec succès les données de marqueurs d'une base de données MySQL, en les plaçant sur une carte Google.Récupérer un nœud XML avec une valeur spécifique Dans downloadURL

  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 Sortie

<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> 

Le problème que j'ai, est que dans son état actuel tous les enregistrements sont récupérés sans tenir compte de l'utilisateur, mais je dois faire cet utilisateur spécifique, être plus précis, si la valeur de l'élément userid correspond à la variable que j'ai sur mon formulaire qui est $idnum.

Je pensais que je pourrais être en mesure de le faire via la requête PHP qui est en cours de chargement dans le loadallmyfinds ci-dessus en utilisant une clause GET, mais malheureusement, cela ne fonctionne pas. J'ai fait des recherches dans ce domaine et je crois, d'après mes connaissances limitées, que je peux le faire via XML, mais je ne sais pas trop comment l'implémenter. Je me demandais si quelqu'un pourrait regarder cela s'il vous plaît et donner des conseils sur la façon dont je peux faire pour que les dossiers sont filtrés.

Un grand merci et salutations

Répondre

0

Vous avez l'ID utilisateur dans le $idnum comme. Alors, s'il vous plaît changer votre demande ajax de ceci:

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

à ceci:

downloadUrl("loadallmyfinds.php?id=<?php echo $idnum?>", function(data) {

et dans le fichier loadallmyfinds.php:

COMMENTAIRE VIEUX

Je suppose que vous pouvez stocker l'ID utilisateur dans votre session ($_SESSION['uid']=$userId;)

... et dans votre fichier loadallmyfinds.php, lisez cette variable de session et renvoyez uniquement ce contenu relatif à l'utilisateur.

+0

Bonjour @Pushpesh, merci d'avoir répondu à mon message. Malheureusement, je suis incapable d'incorporer un début de session dans mon code parce que j'utilise un logiciel qui gère les types 'membership' en utilisant les variables' Session'. Comme je l'ai dit, je pense que la meilleure façon de le faire serait via la route XML. Sincères salutations – IRHM

+0

Ok, pour autant que je sache, 'loadallmyfinds.php' renvoie un XML pour tous les utilisateurs et vous voulez le restreindre à un utilisateur particulier à la fois, n'est-ce pas? Faites le moi savoir et nous pouvons travailler vers une solution. –

+0

Salut @Pushpesh, merci beaucoup pour votre aide continue avec ceci. Oui, fondamentalement 'loadallmyfinds.php' tire les données d'une base de données MySQL. Le script PHP est ensuite analysé via XML, et vous avez raison de supposer que je ne veux que les enregistrements de l'utilisateur actuel retourné. J'ai ajouté un échantillon de la sortie XML à mon message d'origine, ce qui peut aider. Cordialement – IRHM

Questions connexes