我的问题是这个,我有一个JavaScript代码可从浏览器获取GPS位置。然后,因为我无法将这些坐标从javascript写入SQL数据库,也无法直接将其发送到php,所以我转到控制器“站点”,它的方法为“ writeToDatabase”,并且我还向URL添加了4个分段实际上是我从javascript获取的那些坐标。

所以在javascript中,我有:

window.location = getBaseURL() + "site/writeToDatabase/" + splittedLatitude[0] + "/" + splittedLatitude[1]
        + "/" + splittedLongitude[0] + "/" + splittedLongitude[1] + "/";


因此,现在浏览器转到(仅是带有伪坐标的示例)www.mysite.com/index.php/site/writeToDatabase/47/707223/16/054322

现在,我在站点控制器中的writeToDatabase方法读取了这些段(我使用codeigniter,因此读取URL的段确实很容易)。阅读完句段后,我合并了纬度的第一部分和纬度的第二部分,并加上了点“”。介于两者之间(因此在此示例中,我得到47.707223和16.54322),并且对经度也是如此。然后,当我将这些数据写入数据库时​​,我的数据库中也得到了怪异的数字,如果我的分段之一以零开头(就像上面的示例一样),因此从054322中删除了零,因此得到54322,就像上面的示例一样,结果为16.54322 :)

现在,只有当我尝试写入数据库的整个坐标时,才会出现奇数问题。.如果我只写经度的第一部分,或仅写经度的第二部分(纬度也一样),一切都会顺利进行,并且正确的值将被写入。

还有其他人可以解决这个问题吗?我全都没主意了

最佳答案

为什么不直接发送参数,如下所示:

http://www.example.com/foo/bar/?lat=47.11&lng=5.012


那确实解决了这个问题。

但是,您可以使用这种简单的字符串串联方式来完成此操作(因为这些字符串不是整数)。

$lat = $_GET['first'] . '.' . $_GET['second];

08-03 13:43