У меня есть этот раздел div:

<div id="address"></div>

И он показывает форматированный адрес долготы и широты местоположения на картах Google. У меня есть перетаскиваемый маркер, который будет указывать на любое место на карте, и он позволяет ПОКАЗАТЬ имя адреса, долготу и широту. Мне удалось успешно сохранить долготу и широту в моей базе данных в MySQL с помощью PHP. Но мне не удалось сохранить адрес.

Я использовал следующие строки кода, чтобы сохранить long и lat.

<input type="hidden" id="longitude" placeholder="longitude" name= "longitude">
<input type="hidden" id="latitude" placeholder="latitude" name= "latitude">

Но когда я сделаю

<input type="hidden" id="address" placeholder="address" name= "address">

Там не передается значение. но

<div id="address"></div>

Может показать адрес на веб-странице. Так вот почему я отправлю значение div id = "address" в базу данных php и MySQL? Там в любом случае? Как преобразовать это или так?

И также, для визуализации у меня есть этот HTML прямо здесь, http://gmaps-samples-v3.googlecode.com/svn/trunk/draggable-markers/draggable-markers.html

Как вы можете видеть, он может также указывать имя адреса с помощью long и lat. Я смог сохранить long и lat в моей базе данных, но как мне сохранить имя адреса в базе данных ??? Вы можете сохранить файл по ссылке, которой я поделился, и проверить код.

0
KylieJ 19 Дек 2015 в 15:58

3 ответа

Лучший ответ

Вы можете создать асинхронный HTTP-запрос или более известный как AJAX. Если вы знакомы с инфраструктурой jQuery: http://api.jquery.com/jquery.ajax/

Скажем, на вашу кнопку "submit" ссылается "btnSubmit" в качестве идентификатора:

<input type="submit" value="submit" id="btnSubmit" />

Вам нужно будет прикрепить обработчик события «click», чтобы мы знали, когда он был нажат или отправлен:

$('#btnSubmit').on('click', function(){
    /*this is where you'll place your ajax call*/
});

И чтобы сделать вызов ajax, вы сделаете что-то вроде этого:

/*get the inner html value of div with "address" as its ID*/
var long= "long=" + $('#longitude').val();
var lat = "lat=" + $('#latitude').val();   
var data = "address=" + $('#address').html()+'&'+long+'&'+lat;

$.ajax({
    type: 'GET',
    url: "my_php_script.php",
    data: data
})
.done(function(data) {
    /*handle successful call here*/
})
.fail(function(data) {
    /*oops, something went wrong*/
})
.always(function(data) {
    /*no matter what, let's do this*/
});

Мы можем использовать GET или POST в качестве типа ajax. Несмотря на то, что мы использовали GET, вам нужно убедиться, что в вашем my_php_script.php вам придется использовать следующее, чтобы получить значение «address», передаваемое в качестве параметра данных:

$address = $_GET['address'];
$long = $_GET['long'];
$lat = $_GET['lat']

В my_php_script.php вы, очевидно, будете использовать адрес и делать вещи, которые хотите сохранить в базе данных, и все такое.

Не забудьте включить последнюю версию библиотеки jQuery и обернуть js-скрипты при загрузке:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

$(function(){
    /*all jscript goes here*/
});
1
Vincent Edward Gedaria Binua 19 Дек 2015 в 14:43

Сделать это можно так:

HTML:

<div id="address">Berlin, street 99, Germany</div>
<input type="hidden" id="address-to-save" name="address-to-save" value="">

JQuery:

var address = $("#address").text();
$("#address-to-save").val(address);
0
Jeroen Bellemans 19 Дек 2015 в 13:39

Ниже код даст вам адрес в DIV

Если вы используете jquery

alert($("#address").html())

И если вы используете простой JavaScript

console.log(document.getElementById("address").innerText);
0
Keyur Sakaria 19 Дек 2015 в 13:01