2013-05-28 55 views
1

目前我有多对一的关系,我需要我的地图查看器来显示所有子记录,而不仅仅是最后一条记录。我研究并发现,我可能会重写这个变量,这就是为什么最后一条记录是唯一显示的记录。我做了测试,以确保所有记录实际上都是通过使用提琴手来完成的。请帮忙。如何显示来自JSON结果的所有子记录不仅仅是最后一条记录

以下的

<?php error_reporting(E_ERROR | E_WARNING | E_PARSE); 
$pole = $_GET["pole"]; 


// Connect to SQL Server database 
include("../connections/PubgisConnect.php"); 

// Construct query 
$tsql = "Select [dbo].[TRANS_POLE].[PoleID], [dbo].[TRANS_POLE].[PoleType], [dbo]. 
FROM [pubgis].[dbo].[TRANS_POLE] 
INNER JOIN [pubgis].[dbo].[TRANS_SIGN] ON [pubgis].[dbo].[TRANS_POLE].[PoleID][pubgis]  [dbo].[TRANS_SIGN].PoleID INNER JOIN [pubgis].[dbo].[TRANS_SIGNINSPECTION] ON [pubgis].[dbo].[TRANS_SIGN].SignID = [pubgis].[dbo].[TRANS_SIGNINSPECTION].SignID 
WHERE [pubgis].[dbo].[TRANS_POLE].[PoleID] = '$pole'"; 


// Execute query 
$stmt = sqlsrv_query($conn, $tsql); 
if($stmt === false) 
    { 
    echo "Error in executing query.</br>"; 
    die(print_r(sqlsrv_errors(), true)); 
    } 
$results = array(); 
// Retrieve and display the results of the query 
$lastFeatType = ""; 
while($row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC)) { 
    array_push($results,$row); 
    } 

    echo json_encode($results); 

// Free statement and connection resources 
sqlsrv_free_stmt($stmt); 
sqlsrv_close($conn); 
?> 

代码

见PHP代码是从我的索引文件

dojo.xhrGet({ 
     url: "StreetSignsProfile.php", 
     handleAs: "json", 
     content:{pole: pole}, 
     load: function(data) { 
      for (var i=0;i<data.length;i++) { 
       var obj = data[i]; 
       var pole = obj["PoleID"]; 
       var encodedPole = encodeURIComponent(pole); 
     var na = "<span class='notAvail'>not available</span >"; 
       dojo.byId("idHeader").innerHTML = obj["PoleID"]; 
       dojo.byId("PoleType").innerHTML = obj["PoleType"]; 

       //Sign Code 
       dojo.byId("SignID").innerHTML = obj["SignID"]; 
       dojo.byId("SignCode").innerHTML = obj["SignCode"];. 

查看上面的结果 极信息 极式

+0

您很容易受到[SQL注入攻击](http://bobby-tables.com)的影响。直到你了解它们并堵住漏洞之前,不要使用这些代码。 –

+0

@Marc B好的谢谢。 – user1015418

+0

@MarcB你有什么建议动态创建表或避免重写变量? – user1015418

回答

0

看起来您在XHR请求的for循环中遗漏了一段代码(因为您没有正确关闭所有内容)。问题可能在于此,因为这是负责显示所有信息的代码。

现在我只能看到你每行写入每行到同一个DOM节点(一遍又一遍),所以的确如此,你永远不会看到整个表,而是最后一行。但是,这与变量无关,只是引用相同的DOM节点(使用dojo.byId())。

要创建动态结构,我建议您查看dojo/dom-construct模块,该模块允许您动态添加DOM节点。

相关问题