#javascript #php #sql #sqlite
#javascript #php #sql #sqlite
Вопрос:
Я использую JavaScript для доступа к API геолокации, чтобы получить положение устройства и сделать его атрибутом значения элемента ввода формы HTML. Когда форма отправлена, она отправляет объект местоположения в скрипт. Я хочу использовать PHP для хранения объекта в базе данных SQL (SQLite). Также я хочу иметь возможность доступа к информации изнутри объекта либо перед тем, как поместить его в базу данных, либо после получения его обратно из базы данных с помощью PHP. На данный момент я не могу поместить объект в базу данных или получить из него информацию.
(Упрощенный) код, который я использую, приведен здесь:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
echo '<p>'.$_POST['position'].'</p>';
}
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HTML Template</title>
</head>
<body>
<form method='post'>
<div id='div1'>
</div>
<script>
const success = (position) => {
var input = document.createElement("input");
input.setAttribute("name", "position");
input.setAttribute("type", "text");
input.setAttribute("value", position);
var element = document.getElementById("div1");
element.appendChild(input);
}
var id = navigator.geolocation.getCurrentPosition(success);
</script>
<input type='submit' value='submit'>
</body>
</html>
Когда я запускаю это в браузере и разрешаю совместное использование моей позиции, оно создает поле ввода с [object GeolocationPosition] в нем. Когда я затем отправляю форму, она выдает то же самое [объект GeolocationPosition].
Если я «распакую» объект с помощью JavaScript перед присвоением ему значения атрибута ввода формы, я смогу использовать информацию с помощью PHP при отправке формы. Однако это кажется сложным и подверженным ошибкам подходом по сравнению с помещением всего объекта в базу данных.
Я был бы признателен за некоторые указания, пожалуйста.
Ответ №1:
Похоже, что «GeolocationPosition» все еще является объектом. Запустите console.log("GeolocationPosition");
, чтобы вернуть все его свойства в консоль.
Например, если вы пытаетесь получить, допустим, широту, которую вы могли бы использовать GeolocationPosition["lat"]
(если свойство «lat» существует)
Комментарии:
1. Я могу получить данные из объекта, если использую console.log() или другой javascript. Я не могу получить данные из объекта, когда я использую PHP. Я хочу использовать PHP для доступа к объекту после его отправки обратно в мой скрипт.