通过Javascript函数传递PHP

时间:2011-10-06 15:00:36

标签: php javascript xml

我想知道是否有人可以帮助我。

我目前使用下面的代码(源自nearby.org.uk)允许用户将OS Grid Refernce转换为Lat& amp; Lng通过HTML表格进行协调。

function converttolatlng() {
    var gr = document.getElementById('osgridref').value;

    var osgb = new GT_OSGB();


    if (osgb.parseGridRef(gr)) {
        var wgs84 = osgb.getWGS84();

        document.getElementById('osgb36lat').value = wgs84.latitude;
        document.getElementById('osgb36lon').value = wgs84.longitude;
    }
    else {
        document.getElementById('osgb36lat').value = "n/a";
        document.getElementById('osgb36lon').value = "n/a";
    }

}

但是,每月我需要转换大约22,000个OS Grid References的xml列表。由于涉及的数据量很大,使用HTML表单显然不实际,所以我一直在努力实现自动化。该列表源自XML格式,因此我将下面的代码放在一起,将XML数据提取到PHP中。

<? 
  $objDOM = new DOMDocument(); 
  $objDOM->load("xmlfile.xml"); 

  $note = $objDOM->getElementsByTagName("Details"); 

  foreach( $note as $value ) 
  { 
    $NGR = $value->getElementsByTagName("NGR"); 
    $ngr  = $NGR->item(0)->nodeValue; 

    echo "$ngr <br>"; 
  } 

我现在已经到了一点,我不确定接下来该做什么。我知道我需要通过Javascript函数转换网格引用,另外创建Lat&amp; Lng字段通常会出现在我的HTML表单中。然后我需要能够将这些数据上传到mySQL数据库中的表。

有人可能请看看这个,并告诉我需要转换网格参考以及如何将它们上传到我的数据库。

非常感谢

更新

这是xml文件的摘录:

 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
- <Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <Details>
  <LISTENTRY>1003886</LISTENTRY> 
  <NGR>SS 00000 11111</NGR> 
  </Details>

请找到'geotools'文件here的链接。

1 个答案:

答案 0 :(得分:1)

以您描述的方式传递网络服务应该是您的最后选择,this php code the Geograph project可能就是您要找的。如果不是,我建议你将js代码翻译成php。

编辑: 如何整合?我首先阅读OSB36上的一点,以了解<NGR>中的3个元素究竟是什么以及如何解释它们。最难的部分是将网格数字转换为偏移量(需要与osgb36_to_gridref相反)。执行此操作的一种方法可以从parseGridRef

中的geotools2.js派生