2011-10-04 125 views
0

我想知道是否有人可以帮助我。通过Javascript传递PHP值

我正在使用下面的代码将OS GRid引用成功转换为Lat & Lon坐标。这是通过在我的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"; 
    } 

} 

我现在想介绍一些OS栅格参考(约22000),从外部XML文件,我要上传信息到MySQL数据库之前转换,(因此不会通过走正常形式的'点击'事件),但我真的不知道该怎么做。

有人可能请告诉我,我将如何绕过“点击”事件的需要,并自动执行转换。

任何帮助将不胜感激。

非常感谢

+1

这与PHP有什么关系? –

回答

0

如果我正确理解你的问题,和你真的只是希望避免点击一个按钮,你可以简单地调用在<script>的功能在你的HTML的底部。该脚本将在浏览器呈现时立即执行,只要必要的元素已经放在页面上方并加载了XML,它就会正常工作。

<!-- after most of your HTML, but before the closing <body> --> 
<script type='text/javascript'> 
    converttolatlng(); 
</script> 

</body> 
</html> 

如果您需要完整的页面加载并请有需要到位脚本加载一些外部依赖,使用window.onload属性HTML <head>标签中:

<script type='text/javascript'> 
    window.onload = converttolatlng(); 
</script> 
+0

嗨,非常感谢您花时间回复我的帖子。理想情况下,如果可以,我想完全绕过HTML表单。这样,它可以在我的网站用户数量很少的几个小时内按计划运行。亲切的问候 – IRHM

0

的快速方法做到这一点(并学习将来非常有用的工具)就是使用像Pentaho Kettle这样的ETL工具。这是一个可视化工具,您可以连接到数据库和XML文件,执行Step转换,然后点击运行。它会为你做所有的转换。

如果需要,您可以使用Pentaho中的OSGB java库为您进行转换,但您也可以使用Javascript库。 Pentaho的文档有点缺乏,需要一点时间才能使用,但是一旦你发现了它,它可以加速任何ETL项目,你可能需要几分钟而不是几个小时。或者,如果OSGB库在PHP中不可用,那么我只是将它作为一个循环通过Javascript运行并使用jQuery.Json函数,将结果传递给PHP以写入数据库。这样你就可以传递异步对象,只需要处理那些失败的转换/数据库写入。

检查PHPCoord