Mapbox: Как получить значение адреса в автозаполнении поиска ввода Mapbox и вставить в таблицу Mysql с помощью PHP? - PullRequest
0 голосов
/ 02 октября 2019

Я использую Mapbox в своем проекте, и я хотел бы знать, как я могу получить адрес из автозаполнения поиска ввода и вставить этот адрес в таблицу MySQL, используя php? Я пытался найти что-то похожее на мои сомнения, но я не нашел. Ниже приведены некоторые вопросы, на которые я попытался найти ответ:

  1. Mapbox - Могу ли я использовать locationlistener без карты Mapbox
  2. Пользовательский элемент управления геокодером Mapbox
  3. Извлечение данных из геокодера mapbox

В этом случае у меня есть одна таблица, как показано ниже:

Таблица пользователи

id | username | address        | City
==============================================
01 | John     | abc street     | New York
02 | Joseph   | Marie Street   | Washington
03 | Amy      | Barkley street | Houston

В моей форме у меня есть 3 поля для отправки данных в таблицу пользователей. Приведенный ниже HTML-код показывает структуру формы:

<form action="" id="register_user">
            <label for="username">Username</label>
            <input type="text" id="Username" name="Username" placeholder="Your Username..">

            <label for="address">address</label>
            <input type="text" id="address" name="address" placeholder="Your address..">

            <input type="submit" value="Submit" >
        </form>

В моем скрипте вставки php есть функция, которая вставляет значения из формы ввода в таблицу пользователей :

if(isset($_GET['add_location'])) {
    add_location();
}

function add_location(){
    $con=mysqli_connect ("localhost", 'root', '','system');
    if (!$con) {
        die('Not connected : ' . mysqli_connect_error());
    }
    $username= $_GET['username'];
    $address = $_GET['address'];
    // Inserts new row with place data.
    $query = sprintf("INSERT INTO users " .
        " (id, username, address) " .
        " VALUES (NULL, '%s', '%s');",
        mysqli_real_escape_string($con,$username),
        mysqli_real_escape_string($con,$address));

    $result = mysqli_query($con,$query);
    echo json_encode("Inserted Successfully");
    if (!$result) {
        die('Invalid query: ' . mysqli_error($con));
    }
}

На изображении ниже показано, что именно мне нужно, но я не знаю, какой способ это сделать:

enter image description here

Возможно ли сделать этот примервыше? Спасибо:)

1 Ответ

1 голос
/ 05 октября 2019

вы можете подписаться на события геокодера, в частности «результат», и получать всю необходимую вам информацию.

map.addControl(new MapboxGeocoder({
              accessToken: accessToken,
              mapboxgl: mapboxgl,
          }).on('result', function({ result }) { console.log(result.place_name) });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...