2014-01-29 3 views
0

В настоящее время я застрял с обработкой lat/long в моем PHP-коде. Когда пользователи делают выбор в окне выбора, запускается скрипт, который возвращает геолокацию. Моя первая попытка состояла в том, чтобы сохранить lat/long в cookie JavaScript и прочитать cookie с PHP. Это работает, но только при перезагрузке страницы. Но мне нужен lat/long в моем SQL-запросе, который запускается, когда пользователи нажимают кнопку. Я еще не использовал AJAX, поэтому, если есть какая-то другая возможность, я был бы более чем счастлив услышать!Лучший способ получить геолокацию пользователей в php без перезагрузки страницы

Спасибо!

+0

AJAX представляется наиболее разумным вариантом здесь. –

+0

@ MaximKhan-Magomedov Я боялся, что кто-то скажет это :) Спасибо! – user1204121

ответ

1

Ну в принципе, нет. PHP будет выполняться только на вашем сервере, поэтому данные геолокации браузера каким-то образом должны быть переданы на сервер каким-то образом. Поскольку вы можете отправлять данные только на сервер по HTTP-запросу, вам необходимо перезагрузить страницу или использовать AJAX.

Однако, если вы хотите получить неточную геолокацию, вы можете угадать местоположение по ip пользователя (например, страница http://www.ip2location.com реализовала такое местоположение «искатель»). Однако он основан на том факте, что частотные IP-адреса часто размещаются одним и тем же провайдером в той же области. Также этот метод ведет себя некорректно, если кто-то использует прокси.

Для Ajax я бы предложил JQuery. В JQuery относительно просто создавать AJAX запросы:

$.get('example/myDoc.txt', function(data) { 
    alert(data); 
}); 

Этот пример взят из http://www.jquerysample.com/#BasicAJAX и будет запрашивать файл сервера Пример/myDoc.txt.

+0

Спасибо. Ну, похоже, мне нужно научиться справляться с AJAX ... – user1204121

+0

Привет! Будет ли лучший способ сделать вызов AJAX в php-файле, который вместо этого устанавливает cookie? – user1204121

+1

Это зависит от того, что вы точно хотите сделать. Если вы выполняете вызов AJAX в php-файле, в php-файле вы можете проверить, установлен ли файл cookie. И запустите соответствующий php-код ровно один раз. Если вы сделаете это в javascript/ajax, вы можете сделать то же самое, проверьте там, если cookie уже установлен и если не отправлен Ajax-запрос на ваш сервер. Однако имейте в виду, что Javascript в браузере и PHP на вашем сервере, поэтому PHP-код замедляет ваш сервер, и ваш JS-код может не выполняться из пользовательских настроек и т. Д. – quant

Смежные вопросы