Amigos buenas noches。 Tengo un problema que aun no logro resolverlo. Por favor, les agradeceria su apoyo desde ya。在 mysql 数据基础上,问题是 queero guardar la geolocalizacion,pero no he podido。 Tengo 4 rutinas que realizan las siguientes actividades:
Las dos primenas rutinas home.php que captura unos datos y dependiendo de una opcion (button) si pide foto debe ir a otra rutina para capturar la imagen del usuario(camara), esa rutina se demonina index.php .
Las otras dos rutinas, una script.js, es que la hace todo el proceso de la captura de la imagen (camara) y la otra Actions.php que es la que finalmente recoge todos los datos capturados en home .php y lo de la imagen en ndex.php.
Para el proceso, en la rutina home.php que es donde capturo los datos y datos
Aqui capturo datos, como fecha, dispositivo y tipode movimiento. Ademas tengo el siguiente script que llamar el proceso Action.php, cuando el proceso no pide foto del usuario.
Osea, cuando no se pide foto, solo actuan las rutinas: home.php y Actions.php.
变种时间间隔; $(函数(){ timeInterval= setInterval(() => { var date = new Date(); var month = date.toLocaleString('default',{month:'short'}) var day = date.getDate() 日期 变种年 = date.getFullYear() var hr = String(date.getHours()).padStart(2,'0') var min = String(date.getMinutes()).padStart(2,'0') var sec = String(date.getSeconds()).padStart(2,'0') var amp = hr >= 12 ? “下午”:“上午”; hr = String(Math.floor(hr % 12)).padStart(2,'0') $('#time').text(hr+":"+min+":"+sec+" "+amp) $('#date').text(月+" "+日+", "+年) }, 500); $('.att_btn').click(函数(){ $('.att_btn').attr('禁用',true) var time = new Date("YYYY-MM-DD H:i"); $.ajax({ **url:'Actions.php?a=save_attendance', ** 方法:'POST', ** 数据:{type:$(this).attr('data-type'),time:time},** 数据类型:'json', 错误:错误=> { 控制台日志(错误) alert("发生错误") $('.att_btn').attr('禁用',false) }, 成功:函数(响应){ 如果(resp.status =='成功'){ Swal.fire({ 标题:'成功!', text: '考勤记录添加成功', 图标:“成功”, 定时器:2000, 定时器进度条:真, willClose: () => { 位置.reload() } }) }别的{ 控制台日志(响应) alert("发生错误") } $('.att_btn').attr('禁用',false) } }) }) })en** index.php**,que es la pantalla para tomar la foto (camara),y llama a Action。 tengo esta 功能:
$boton.addEventListener("click", function() {
$video.pause();
let contexto = $canvas.getContext("2d");
$canvas.width = $video.videoWidth;
$canvas.height = $video.videoHeight;
contexto.drawImage($video, 0, 0, $canvas.width, $canvas.height);
let foto = $canvas.toDataURL();
$estado.innerHTML = "Sending photo. Please wait...";
fetch("./guardar_foto.php", {
method: "POST",
body: encodeURIComponent(foto),
headers: {
"Content-type": "application/x-www-form-urlencoded",
}
})
.then(resultado => {
return resultado.text()
})
.then(nombreDeLaFoto => {
console.log("The photo was sent successfully");
$estado.innerHTML = `Photo saved successfully.`;
var time = new Date("YYYY-MM-DD H:i");
var urlParams = new URLSearchParams(window.location.search);
var nombre = urlParams.get('type');
// var json_data = mysqli_real_escape_string($json_data);
// var jsonText = "";
$.ajax({
** url:'../../Actions.php?a=save_attendance',**
method:'POST',
** data:{type:nombre,json_data,time:time,url:nombreDeLaFoto},**
dataType:'json',
error:err=>{
console.log(err)
alert("An error occurred")
$('.att_btn').attr('disabled',false)
},
En script.js, tengo esta parte de codigo para el manejo de la foto:
.then(nombreDeLaFoto => {
console.log("The photo was sent successfully");
$estado.innerHTML = `Photo saved successfully.`;
var time = new Date("YYYY-MM-DD H:i");
var urlParams = new URLSearchParams(window.location.search);
var nombre = urlParams.get('type');
$.ajax({
url:'../../Actions.php?a=save_attendance',
method:'POST',
data:{type:nombre,time:time,url:nombreDeLaFoto},
dataType:'json',
por ultimo esta Actions.php, que es donde se almacena en la base de datos:
function save_attendance(){
extract($_POST);
$dtype = $this->isMobileDevice() ? 'mobile' :'desktop';
$datetime = date("Y-m-d H:i");
$urlImagen = isset($url) ? $url : '';
$sql = "INSERT INTO `attendance` (`employee_id`,`device_type`,`att_type`,`imagen`,`date_created`) VALUES
('{$_SESSION['employee_id']}','{$dtype}','{$type}','$urlImagen','{$datetime}')";
$save = $this->db->query($sql);
if($save){
$resp['status'] = 'success';
}else{
$resp['status'] = 'failed';
}
return json_encode($resp);