У меня проблема с отправкой переменной в php-скрипт и возвратом результата без обновления страницы. PHP скрипт koord.php
проверен и работает нормально.
adresa
, mjest
o и coords
- текстовые поля ввода):$(document).ready(function () {
$('#coord_click').click(function () {
provjera();
});
});
function provjera() {
var adresa = $('#adresa').val();
var mjesto = $('#mjesto').val();
var puna_adresa = adresa + " " + mjesto;
$.post("koord.php", { puna_adresa: puna_adresa },function (result) {
$('#coords').val(result);
});
}
$puna_adresa = $_GET['puna_adresa'];
function getCoordinates($address){
$address = str_replace(" ", "+", $address);
$url = "maps.google.com/maps/api/geocode/…";
$response = file_get_contents($url);
$json = json_decode($response,TRUE);
return ($json['results'][0]['geometry']['location']['lat'].",".$json['results'][0]['geometry']['location']['lng']);
}
echo getCoordinates($puna_adresa);
Полный исходный код находится здесь: http://pastebin.com/u/bradetic
Спасибо!
JQuery POST не является проблемой.
Вы делаете $.post(...)
что означает, что вам нужно получить параметр в koord.php
через $_POST
, и вы используете $_GET
, вы видите проблему правильно?
Измените $_GET['puna_adresa'];
до $_POST['puna_adresa'];
или
измените $.post(...)
на $.get(...)
на вашей стороне клиента.
POST
и GET
?Вам действительно нужно использовать JQuery AJAX, вот пример:
<script>
function your_function()
{
// collect data like this
var formData = jQuery("#your_form_id").serializeArray();
jQuery.ajax({
type: "POST",
url:"your_php_page.php",
data:formData,
dataType:'json',
beforeSend: function()
{
},
success: function(resp)
{
alert(resp);
},
complete: function()
{
},
error: function(e)
{
alert('Error: ' + e);
}
});
}
</script>
И PHP-скрипт должен выглядеть следующим образом:
$puna_adresa=$_POST['puna_adresa'];
function getCoordinates($address){
$address = str_replace(" ", "+", $address);
$url = "maps.google.com/maps/api/geocode/…;;
$response = file_get_contents($url);
return $response;
}
$response = getCoordinates($puna_adresa);
echo json_encode($response);
вы можете попробовать это
$.post( "koord.php", $( "#testform" ).serialize() );
Можете ли вы попробовать это,
$.post("koord.php", { puna_adresa: adresa, mjesto: mjesto }, function (result) {
$('#coords').val(result);
});
Другой путь:
$.post("koord.php", $( "#testform" ).serialize(), function (result) {
$('#coords').val(result);
});
koord.php
?