0

誰かが私を助けてくれるのではないかと思います。まず、これについての私の謝罪は非常に基本的な質問です。私は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上記でロードされているPHPクエリ、つまり句を使用してこれを実行できる可能性があると思いましたGETが、残念ながらこれは機能しません。

私はこれについていくつかの調査を行いました。私の限られた知識から、XMLを介してこれを実行できる可能性があると信じていますが、どのように実装するかは本当にわかりません。

誰かがこれを見て、レコードがフィルタリングされるように私がどのようにそれを行うことができるかについてのガイダンスを提供できるかどうか疑問に思いました。

よろしくお願いします

4

1 に答える 1

0

としてユーザーIDがあります$idnum。したがって、ajaxリクエストを次のように変更してください。

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

これに:

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

およびloadallmyfinds.phpファイル内:

古いコメント

ユーザーIDをセッションに保存できると思います($_SESSION['uid']=$userId;

...そしてloadallmyfinds.phpファイルで、このセッション変数を読み取り、そのユーザー関連のコンテンツのみを返します。

于 2012-06-18T14:09:08.383 に答える