如何从 JavaScript 获取数据到控制器并将其存储在数据库中
Posted
技术标签:
【中文标题】如何从 JavaScript 获取数据到控制器并将其存储在数据库中【英文标题】:How to get data from a JavaScript to controller and store it in the database 【发布时间】:2020-01-25 16:51:38 【问题描述】:我想从这个 javascript 获取位置到控制器并将其存储在数据库中:
var currPosition;
navigator.geolocation.getCurrentPosition(function(position)
updatePosition(position);
setInterval(function()
var lat = currPosition.coords.latitude;
var lng = currPosition.coords.longitude;
jQuery.ajax(
type: "POST",
url: "myURL/location.php",
data: 'x=' + lat + '&y=' + lng,
cache: false
);
, 1000);
, errorCallback);
var watchID = navigator.geolocation.watchPosition(function(position)
updatePosition(position);
);
function updatePosition(position)
currPosition = position;
function errorCallback(error)
var msg = "Can't get your location. Error = ";
if (error.code == 1)
msg += "PERMISSION_DENIED";
else if (error.code == 2)
msg += "POSITION_UNAVAILABLE";
else if (error.code == 3)
msg += "TIMEOUT";
msg += ", msg = " + error.message;
alert(msg);
【问题讨论】:
您遇到任何错误?你的问题是什么? 我是 codeigniter 框架的新手,请告诉我如何将这些观察位置坐标从 java 脚本发布到控制器 【参考方案1】:用.ajax()
发帖:
// ....
let formData = new FormData();
const lat = currPosition.coords.latitude;
const lng = currPosition.coords.longitude;
formData.append("x", lat);
formData.append("y", y lng;
$.ajax(
url: "myURL/location.php", // update this with you url
dataType: 'text',
cache: false,
contentType: false,
processData: false,
data: formData,
type: 'POST',
success: function(data)
const response = jQuery.parseJSON(data);
);
//....
接收codeigniter中的post数据:
$x = $this->input->post('x');
$y = $this->input->post('y');
【讨论】:
我仍然得到空值 "INSERT INTO location (x, y) VALUES (NULL, NULL)" Uncaught ReferenceError: base_url is not defined @KishanChandra 可能是你没有声明类扩展CI_Controller
.. 看这个案例:***.com/questions/53944667/…
嗨,谢谢我设法通过添加 来解决它【参考方案2】:
您只需将 uri
参数更改为您拥有的 codeginter 路由
setInterval(function()
....
url: "change this to codeigniter route url",
....
, 1000);
然后在控制器中你只需要保存这些参数,
class X extends CI_Controller
function update_position()
$x = $this->input->post('x');
$y = $this->input->post('y');
// then save it using model or query.
$this->model_name->insert([...])
【讨论】:
我仍然得到空值" INSERT INTOlocation
(x
, y
) VALUES (NULL, NULL)"
Uncaught ReferenceError: base_url is not defined以上是关于如何从 JavaScript 获取数据到控制器并将其存储在数据库中的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据库中的数据提取到 javascript 文件中并将其存储在数组中?
我如何从多个标签中获取多个数据,并将它们作为 json 存储在 javascript、jquery 中
将数据从 javascript 发送到 html 并使用 php 获取
JavaScript:如何从 URL 获取函数的数据? [复制]