我想知道是否有人能夠幫助我。通過Javascript傳遞PHP函數
我目前使用下面的代碼(源自nearby.org.uk),允許用戶通過HTML表單將OS格網引用轉換爲Lng座標。
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的網格引用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函數轉換網格引用,並且還需要創建通常位於HTML表單上的Lat字段。然後我需要能夠將這些數據上傳到mySQL數據庫中的表中。
有人可能會看看這個請告訴我什麼我需要轉換網格引用,以及如何將它們上傳到我的數據庫。
非常感謝
UPDATE
此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。
得出不knowning XML文件,並且彌補了'getWGS84' JavaScript函數的代碼結構不能有很大幫助。 –
嗨,非常感謝您回覆我的帖子。我已經添加了xml文件的提取和鏈接到JS函數與我的原始帖子結合使用的'geotools'文件。我不想粘貼整個文件,因爲它是一個很長的腳本。親切的問候 – IRHM