Javascript 如何允许用户删除网站上的数据?
我试图实现的是一个网站,允许用户登录,创建抽认卡,并在需要时删除它们。在“查看”页面上,用户将看到一个包含所有创建的抽认卡的表,以及每行旁边的删除按钮。该表是通过从sqlite数据库逐行打印数据创建的。我已经到了用户可以从表中删除行的地步,但是一旦他们刷新页面,删除的行就会再次返回,因为删除不会影响sqlite数据库 我应该如何允许用户从sqlite数据库中删除数据?我知道我应该以某种方式使用db.execute(“DELETE…”),但我不确定如何将其链接到表中的DELETE按钮 相关HTML代码Javascript 如何允许用户删除网站上的数据?,javascript,python,html,sqlite,Javascript,Python,Html,Sqlite,我试图实现的是一个网站,允许用户登录,创建抽认卡,并在需要时删除它们。在“查看”页面上,用户将看到一个包含所有创建的抽认卡的表,以及每行旁边的删除按钮。该表是通过从sqlite数据库逐行打印数据创建的。我已经到了用户可以从表中删除行的地步,但是一旦他们刷新页面,删除的行就会再次返回,因为删除不会影响sqlite数据库 我应该如何允许用户从sqlite数据库中删除数据?我知道我应该以某种方式使用db.execute(“DELETE…”),但我不确定如何将其链接到表中的DELETE按钮 相关HTML
<script>
function deleteRow(row){
var d = row.parentNode.parentNode.rowIndex;
document.getElementById('review').deleteRow(d);
}
</script>
<table id='review'>
<tr>
<th></th>
<th>Front</th>
<th>Back</th>
<th>Tags</th>
<th>Date</th>
</tr>
{% for row in cards_created: %}
<tr>
<td><input type="button" value="Delete" onclick="deleteRow(this)"></td>
<td>{{ row["front"] }}</td>
<td>{{ row["back"] }}</td>
<td>{{ row["tags"] }}</td>
<td>{{ row["date"] }}</td>
</tr>
{% endfor %}
</table>
要从数据库中删除记录,您应该将删除信息传递到要执行删除的服务器。然后,服务器将向客户端发送更新的页面 有两部分需要更新: 在js脚本中,从所选行获取行日期并将其发送到服务器。我假设date字段对于该用户是唯一的
<script>
function deleteRow(row){
dt = row.parentNode.parentNode.getElementsByTagName('td')[4].innerHTML; // date column
doc = document.location.href // current url
// reload page from server
document.location.href = doc + "?delDate=" + dt //pass date for delete
}
</script>
为了使这更干净,flashcards表应该有一个卡的唯一id,这样就不会使用日期。存在日期不唯一的风险,有几行将被删除
<script>
function deleteRow(row){
dt = row.parentNode.parentNode.getElementsByTagName('td')[4].innerHTML; // date column
doc = document.location.href // current url
// reload page from server
document.location.href = doc + "?delDate=" + dt //pass date for delete
}
</script>
def review(params): # however you get params
if params["delDate"]: # user clicked delete, so remove row from database
db.execute("DELETE flashcards WHERE id = ? and date = ?", session["user_id"], params["delDate"])
"""Review created cards"""
cards_created = db.execute("SELECT front, back, tags, date FROM flashcards WHERE id = ? ORDER BY date DESC", session["user_id"])
return render_template("review.html", cards_created=cards_created)