Как мне отправить эту display_false ()
функцию на сервер с помощью jQuery, чтобы база данных обновлялась без обновления страницы?
def display_false():
if display == "false":
main_id = self.request.get("main_id")
k = Main.get_by_id(int(main_id))
k.display = False
k.put()
display_false()
Сначала я скрываю строку таблицы с помощью этого jQuery ( см. Мой предыдущий вопрос ):
$(document).ready(function() {
$("a.false").click(function(e) {
$(this).closest("tr.hide").hide("slow");
e.preventDefault();
});
, а затем я хочу обновить свойство «display» в базе данных до «false» с помощью display_false ()
, чтобы элемент не отображался.
А это html, где скрывается ссылка:
for item in e:
main_id = item.key().id()
...
...
(hide)
...
...
Спасибо!
Обновление
Это то, что я пробовал в соответствии с ответом Пола , но это не работает.
$(document).ready(function() {
//hide the row
$("a.false").click(function(e) {
$(this).closest("tr.hide").hide("slow");
e.preventDefault();
});
$("a.false").click(function() {
//ajax server call
$.ajax({
url: "/useradminpage?main_id=%s&display=false",
success: function(data) {
//do some stuff.
display_false()
alert('returned');
}
});
});
});
Обновление
Я поставил предупреждения, чтобы увидеть, что работает, как предложил Пол. Предупреждения 1, 2 и 3 запущены, но 4 не запущены:
$(document).ready(function() {
alert("1 - document ready is called")
$("a.false").click(function(e) {
$(this).closest("tr.hide").hide("slow");
e.preventDefault();
alert("2 - row is hidden")
});
$("a.false").click(function() {
//ajax server call
alert("3 - ajax server call")
$.ajax({
url: "/useradminpage?main_id=%s&display=false",
success: function(data) {
//do some stuff.
display_false()
alert(4 - "returned");
}
});
});
});
Обновление
Это часть кода для этого раздела таблицы; Я пытаюсь получить main_id
и передать его вызову ajax:
#-----------main table------------#
main_id = self.request.get("main_id")
self.response.out.write("""
links edit tags
""")
query = Main.all()
query.filter("owner", user)
query.filter("display", True)
query.order("-date")
cursor = self.request.get("cursor")
if cursor: query.with_cursor(cursor)
e = query.fetch(100)
cursor = query.cursor()
for item in e:
main_id = item.key().id()
self.response.out.write("""
%s (%s)
%s
(edit)
(hide)
(comments)
%s
""" % tuple([item.url, item.title, urlparse(item.url).netloc,
f1.truncate_at_space(item.pitch), main_id, main_id, main_id,
item.url, main_id, (", ".join(item.tag_list)),
(", ".join(item.tag_list)),]))
self.response.out.write("""
""")
display = self.request.get("display")
def display_false():
if display == "false":
main_id = self.request.get("main_id")
k = Main.get_by_id(int(main_id))
k.display = False
k.put()
display_false()
Обновите после обсуждения с Полом, чтобы получить номер идентификатора скрытой строки: