Как получить данные из JavaScript в контроллер и сохранить их в базе данных - PullRequest
0 голосов
/ 25 сентября 2019

Я хочу получить местоположение из этого 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);
}

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Чтобы отправить сообщение с .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 :

$x = $this->input->post('x');
$y = $this->input->post('y');
1 голос
/ 25 сентября 2019

вам просто нужно изменить параметр 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([...])
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...