通过Javascript传递PHP值

时间:2011-10-04 16:05:39

标签: php javascript mysql

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

我目前正在使用以下代码将OS GRid引用成功转换为Lat& amp; 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";
    }

}

我现在想要在将信息上传到mySQL数据库之前从我想要转换的外部xml文件中引入一些OS Grid References(大约22,000)(因此不会通过正常形式'click '事件),但我真的不确定该怎么做。

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

非常感谢任何帮助。

非常感谢

2 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,并且您真的只是想避免点击按钮,则只需在HTML底部的<script>中调用您的功能即可。一旦浏览器呈现它就会执行该脚本,因此只要必要的元素已经在它上面的页面上并且加载了XML,它就可以正常工作。

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

</body>
</html>

如果您需要加载整个页面并且需要使用脚本加载一些外部依赖项,请使用HTML window.onload标记内的<head>属性:

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

答案 1 :(得分:0)

快速实现此目的(以及学习将来非常有用的工具)是使用像Pentaho Kettle这样的ETL工具。这是一个可视化工具,您可以连接到数据库和XML文件,执行步骤转换,然后点击运行。它将为您完成所有转换。

如果需要,可以使用Pentaho中的OSGB java库为您进行转换,但您也可以使用Javascript库。 Pentaho的文档有点缺乏,它确实需要一点点使用,但是一旦你搞清楚,它就会加速任何ETL项目,你可能需要花费几分钟而不是几个小时。

或者,如果OSGB库在PHP中不可用,我只需将其作为循环运行Javascript并使用jQuery.Json函数,将结果传递给PHP以写入数据库。这样你就可以传递异步对象,只需要处理那些失败的转换/ DB写入。

检查PHPCoord