2008-10-17 7 views
5

У меня есть форма, когда я нажимаю кнопку отправки, я хочу установить связь с сервером и получить что-то с сервера, который будет отображаться на той же странице. Все должно быть сделано в AJAX. Как это сделать в Google App Engine? Если возможно, я хочу сделать это в JQuery.Создание формы Ajax в Google App Engine

Редактировать: Пример в code.google.com/appengine/articles/rpc.html не работает над формой.


Редактировать: Процедура rpc doesn't work for form.

+0

Я использую метод RPC, и он работает хорошо. Я сделал его немного более надежным, так как я использую его на нескольких страницах, но это в основном то же самое. Итак, если он не работает, вы делаете что-то неправильно. Если есть определенная ошибка, которую вы получите, опубликуйте ее и, возможно, я буду знать, что происходит. – jamtoday 2008-10-19 20:12:56

ответ

1

Я добавил бы, что в Firebug вы должны увидеть, что ваш вызов ajax появляется в консоли. Если вы получаете исключение, когда открываете этот адрес, есть что-то с вашим кодом Python. Может быть, вы неправильно указываете свои URL?

1

Я сделал это с чем-то вроде этого, прежде чем в JQuery (не уверен, что это «лучший» способ, но он работает):

function jsonhandler(data) { 
    // do stuff with the JSON data here 
} 

var doajax = function() { 
    arr = Object(); 
    $("#form_id").children("input,select").each(function() { arr[this.name] = this.value;}); 
    $.getJSON("<page to call with AJAX>", arr, function (data) { jsonhandler(data);}); 
} 

$(document).ready(function() { 
    $("#submit_button_id").replaceWith("<input id=\"sub\" name=\"sub\" type=\"button\" value=\"Submit\">"); 
    $("#sub").click(doajax); 
} 

Вы можете заменить $ .getJSON с whichever jQuery AJAX function does what you want. Если вы просто хотите отобразить вывод страницы, которую вы вызываете, $ .get, вероятно, лучший выбор. Если у вас есть другие типы ввода, кроме ввода и выбора в вашей форме, вам также нужно добавить их к функции children.

7

Вы можете использовать jquery Form plugin для отправки форм с использованием ajax. Работает очень хорошо.

$('#myFormId').submit(function() { 
    // submit the form 
    $(this).ajaxSubmit(); 
    return false; 
}); 
Смежные вопросы