У меня есть список закладок, отображаемых на столе . Я добавил ссылку «скрыть», чтобы скрыть закладку, которую не хочу видеть в списке, но которую я все еще хочу сохранить (таблица и ссылка скрытия отображаются, только если вы вошли в систему).
Теперь я делаю это, получая элемент из базы данных, изменяя его свойство display на «False» и снова визуализируя страницу.
Я думаю, что это лучше сделать с помощью javascript без перезагрузки страницы. Я нашел несколько ссылок, чтобы скрыть строку таблицы, но кроме скрытия мне также нужно записать новое свойство отображения в базу данных. Я не понимаю, как я могу это сделать. Каков наилучший способ скрыть строку и записать новое свойство отображения в базу данных? Спасибо.
У меня сейчас такой код:
#-----------main table------------#
display = self.request.get("display")
main_id = self.request.get("main_id")
self.response.out.write("""<table class="mytable">
<tr class="head">
<th width="80%">links</th><th>edit tags</th>
</tr>
""")
if display == "false":
k = Main.get_by_id(int(main_id))
k.display = False
k.put()
self.redirect("/useradminpage")
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("""
<tr>
<td><a href="%s" target="_blank">%s</a><span class=small> (%s) </span><br />
<span class=small>%s</span>
<a href="/edit?main_id=%s"><span class="small">(edit)</span></a>
<a href="/useradminpage?main_id=%s&display=false"><span class="small">(hide)</span></a>
<a href="/comment?main_id=%s"><span class="small">(comments)</span></a>
<td><a href="/tc?url=%s&main_id=%s&user_tag_list=%s" title="edit tags">%s</a></td>
</tr>
""" %
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("""</table>""")
Обновление
Попытка style.display
в Ответ РобГ ; но следующий код не работает:
...
for item in e:
main_id = item.key().id()
self.response.out.write("""
<div>
<tr>
<td><a href="%s" target="_blank">%s</a><span class=small> (%s) </span><br />
<span class=small>%s</span>
<a href="/edit?main_id=%s"><span class="small">(edit)</span></a>
<a href="/useradminpage?main_id=%s&display=false" onclick="this.parentNode.style.display = "none";><span class="small">(hide)</span></a>
<a href="/comment?main_id=%s"><span class="small">(comments)</span></a>
<td><a href="/tc?url=%s&main_id=%s&user_tag_list=%s" title="edit tags">%s</a></td>
</tr>
</div>
...
UPDATE
Попытка Отредактированный ответ RobG . В этом случае, когда я нажимаю кнопку «Скрыть», строка на мгновение скрывается, а затем снова возвращается. Я не понимаю почему. Я вставляю ниже код, включая таблицу хранения:
#-----------holding table start--------#
self.response.out.write("""
<table border="0" cellpadding="5" cellspacing="10" >
<tbody>
<tr>
<td>""")
self.response.out.write("""<td style="vertical-align:top">""")
#-----------tags table start--------#
self.response.out.write("""<table class="mytable">
<tbody>
<tr class="head">
<th>tags<br />
<a href="/useradminpage?order=alpha"><span class=small>alpha</span></a><br />
<a href="/useradminpage?order=date"><span class=small>newest</span></a><br />
<a href="/useradminpage?order=popular"><span class=small>popular</span></a>
</th>
</tr>
""")
if order_by == "popular":
for tag in most_used:
self.response.out.write("""
<tr><td><a href="/tag?tag=%s">%s</a></td></tr>
""" %
(tag, tag))
else:
for tag in unique_tags:
self.response.out.write("""
<tr><td><a href="/tag?tag=%s">%s</a></td></tr>
""" %
(tag, tag))
self.response.out.write("""</table>""")
#holding table first column end
self.response.out.write("""</td>""")
#holding table second column start
self.response.out.write("""<td style="vertical-align:top">""")
#-----------main table------------#
display = self.request.get("display")
main_id = self.request.get("main_id")
self.response.out.write("""<table class="mytable">
<tr class="head">
<th width="80%">links</th><th>edit tags</th>
</tr>
""")
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("""
<tr>
<td><a href="%s" target="_blank">%s</a><span class=small> (%s) </span><br />
<span class=small>%s</span>
<a href="/edit?main_id=%s"><span class="small">(edit)</span></a>
<a href="/useradminpage?main_id=%s&display=false"
onclick="this.parentNode.parentNode.style.display = 'none';">
<span class="small">(hide)</span></a>
<a href="/comment?main_id=%s"><span class="small">(comments)</span></a>
<td><a href="/tc?url=%s&main_id=%s&user_tag_list=%s" title="edit tags">%s</a></td>
</tr>
""" %
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("""</tbody></table>""")
#holding table end
self.response.out.write('<a href="/useradminpage?cursor=%s">More Results</a>' % cursor)
self.response.out.write("""</td></tr>""")
self.response.out.write("""</tbody></table>""")
self.response.out.write("""</div>""")