Я нашёл в этом вопросе три технологических вопроса:
1. Про вычисление города
Есть форма заявки с полями "номер телефона" ... добавлен на базу mysql ... адрес (город проживание клиента который нажал на кнопку)
Если в форме нет поля для выбора страны и города, то можно вычислить приблизительное местоположение по IP адресу. Это неточная информация, ей нельзя доверять на 100%, потому что пользователь мог зайти на сайт через анонимные прокси. Желательно уточнить у него - "Вы точно из города X?".
Для автоматического вычисления гео-данных можно воспользоваться
платной базой GEO данных сервиса MaxMind или
платными открытыми веб-сервисами
Или бесплатными сервисами, которые возвращают данные с очень большой погрешностью, например вместо города возвращают страну :(
Пример получения информации через API MaxMind для языка PHP<?php
require_once 'vendor/autoload.php';
use GeoIp2\Database\Reader;
// This creates the Reader object, which should be reused across lookups.
$reader = new Reader('/usr/local/share/GeoIP/GeoIP2-City.mmdb');
// Replace "city" with the appropriate method for your database, e.g., "country".
$record = $reader->city('128.101.101.101');
print($record->country->isoCode . "\n"); // 'US'
print($record->country->name . "\n"); // 'United States'
print($record->country->names['zh-CN'] . "\n"); // '美国'
print($record->mostSpecificSubdivision->name . "\n"); // 'Minnesota'
print($record->mostSpecificSubdivision->isoCode . "\n"); // 'MN'
print($record->city->name . "\n"); // 'Minneapolis'
print($record->postal->code . "\n"); // '55455'
print($record->location->latitude . "\n"); // 44.9733
print($record->location->longitude . "\n"); // -93.2323
Пример получения информации об IP адресе на языке PHP через открытый сервис ipinfo.io$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}"));
echo $details->city; // -> "Mountain View"
Пример запроса:
$ curl ipinfo.io/8.8.8.8
Пример ответа:
{
"ip": "8.8.8.8",
"hostname": "google-public-dns-a.google.com",
"loc": "37.385999999999996,-122.0838",
"org": "AS15169 Google Inc.",
"city": "Mountain View",
"region": "CA",
"country": "US",
"phone": 650
}
2. Про передачу данных с веб-страницы
Как сделать чтобы при нажатии на кнопку запрос был добавлен на базу
Можно отправить форму на сервер методом POST, а можно передать по технологии AJAX.
learn.javascript.ru/ajax-intro
3. Про сохранение в базу данных
Как сделать чтобы ... эти данные записать на БД
Язык программирования не указан.
Уточните, что именно эта информация нужна - я напишу больше.
Общий алгоритм: извлечь номер телефона и IP адрес из запроса, вычислить город по IP адресу, записать результаты в базу данных.