从JQuery Ajax向PHP发送十进制值会导致不必要的舍入



我正在使用JQuery以十进制值的形式发送数据到PHP文件。PHP文件依次将这些值插入MySQL数据库,其中两列lat,lng是十进制类型。PHP脚本,特别是$_POST变量,似乎不希望将值舍入。我的问题是,我如何接收PHP文件中的十进制值而不舍入它们,以便我可以将未舍入的值发送到数据库?

示例:运行下面的代码导致数据库条目为33,57而不是预期的32.58285,57.38373

sendMarkerData.js:

$(document).ready(function(){
$.ajax({
url:'sendMarkerData.php',
method:'POST',
data:{
lat:32.58285,
lng:57.38373 // sample lat, lng values
},
success:function(data){
console.log(data);
}
})

sendMarkerData.php:

<?php
include ('database_connect.php');
$lat = $_POST['lat']; 
$lng = $_POST['lng']; // apparently these two lines round lat and lng to integers
$sqlSend = "INSERT INTO `markers` (`lat`, `lng`) VALUES ($lat, $lng)";
if ($conn->query($sqlSend) === TRUE) {
echo "success";
}
else {
echo "fail";
}
$conn->close();
?>

这不是jQuery或PHP的错误,PHP页面接收到的是您通过jQuery发送的实际值。两位数字后的四舍五入是数据库类型设置,只需进入数据库表结构并将列类型更改为十进制,在长度/值中输入18,10或18,12表示您要在第一个点后输入的位数。

最新更新