2011-12-24 2 views
1

Прошло много времени с тех пор, как я сделал какой-либо материал jQuery/js, и глупый $ .get() дает мне проблемы. Я нахожусь на чисто этапе тестирования и просто хочу использовать $ .get для возврата строки, закодированной json.

Это то, что я хотел бы использовать:

<script> 
    function send_address(){ 
    $.get("tester3.php", function(data){ 
    alert("Data Loaded: " + data); 
    }); 
    } 
</script> 

Однако, единственный способ, которым я могу получить ответ заключается в использовании этого (который выполняет в порядке, но я понимаю, что это результат асинхронный вызов, и это не проблема):

<script> 
    function send_address(){ 
    $.get("tester3.php", function(data){ 
     alert("Data Loaded: " + data); 
     }); 
    alert('here'); 
    } 
</script> 

Я просто хочу, чтобы отправить запрос Добраться до «tester3.php» и увидеть возвращенную строку без того, чтобы положить в боевой готовности.

Спасибо, и счастливые праздники!

ОБНОВЛЕНО: Вот HTML, который вызывает функцию:

<form id="maps_check" class="niceform"> 
    <fieldset> 
    <input type="submit" value="Submit" onclick="send_address()"/> 
    </fieldset> 
</form> 
+1

Интересно. Я не могу это объяснить. Выполняется ли send_address в первом примере? –

+0

Не то, что я могу сказать. Мне нужна функция предупреждения, чтобы следить за ответом от $ .get. – user1114864

+0

Вы можете проверить свою консоль JavaScript. Вы, безусловно, должны прекратить нормальное представление, как говорит Кристер. Проверьте наличие ошибок JS; в коде нет ничего плохого. –

ответ

0

Если вы вызываете send_address на клик или отправить событие, я думаю, вы должны попытаться вернуть false.

function send_address(){ 
    $.get("tester3.php", function(data){ 
     alert("Data Loaded: " + data); 
    }); 
    return false; 
} 

Вы также можете отменить действие по умолчанию с помощью preventDefault() так:

function send_address(e) { 
    // cancel the action when clicking on a link 
    e.preventDefault(); 
} 
+0

К сожалению, я пробовал это, и он, похоже, не работает. – user1114864

+0

Можете ли вы отредактировать свой пост и показать, что вызывает функцию. – Cyclonecode

+0

Отредактировано мое сообщение, см. Выше, спасибо. – user1114864

0

Используйте функцию обратного вызова

<script> 
    function send_address(callback){ 
     $.get("tester3.php", function(data){ 
      callback(data); 
     }); 
    } 
</script> 

Используйте ваши данные ответа так

send_address(function(data) { 
    // data contains your ajax result 
    $("#where-you-want-it").html(data); // Depending on what and how you want to use it. 
}); 

Обратный вызов будет выполняться только после завершения асинхронного вызова.

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