Как обновить базу данных с помощью jQuery без обновления страницы?

Как мне отправить эту 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("""    
            """)        

            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("""
                
                """ % 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("""
linksedit tags
%s (%s)
%s (edit) (hide) (comments)
%s
""") 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()

Обновите после обсуждения с Полом, чтобы получить номер идентификатора скрытой строки:


0
задан Community 23 May 2017 в 11:47
поделиться