JQuery пост не передавая параметры

0

У меня проблема с отправкой переменной в php-скрипт и возвратом результата без обновления страницы. PHP скрипт koord.php проверен и работает нормально.

Это мой код js (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);
    });
}

koord.php:

$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]['geo‌​metry']['location']['lng']); 
} 

echo getCoordinates($puna_adresa);   

Полный исходный код находится здесь: http://pastebin.com/u/bradetic

Спасибо!

  • 0
    вы можете показать код koord.php ?
  • 0
    $ 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);
Показать ещё 1 комментарий
Теги:

4 ответа

1
Лучший ответ

JQuery POST не является проблемой.

Вы делаете $.post(...) что означает, что вам нужно получить параметр в koord.php через $_POST, и вы используете $_GET, вы видите проблему правильно?

Решение

Измените $_GET['puna_adresa']; до $_POST['puna_adresa'];

или

измените $.post(...) на $.get(...) на вашей стороне клиента.

Вы знаете разницу между POST и GET?

  • 0
    Да это оно! Спасибо!
  • 0
    @ user2986503: Не забудьте пометить ответ как ответ на вопрос. Удачи!
1

Вам действительно нужно использовать 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);
  • 0
    Могу ли я использовать вместо jQuery ("# your_form_id") jquery ("# adresa, # mjesto"), потому что у меня есть несколько полей ввода и мне нужны только эти два.
  • 1
    Это то же самое ... нет проблем с кодом на стороне клиента
Показать ещё 5 комментариев
0

вы можете попробовать это

$.post( "koord.php", $( "#testform" ).serialize() );
0

Можете ли вы попробовать это,

     $.post("koord.php", { puna_adresa: adresa, mjesto: mjesto }, function (result) {
        $('#coords').val(result);
    });

Другой путь:

    $.post("koord.php", $( "#testform" ).serialize(), function (result) {
        $('#coords').val(result);
    });

Ссылка: http://api.jquery.com/jQuery.post/

  • 0
    почему это что-то изменит?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню