Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何允许用户删除网站上的数据?_Javascript_Python_Html_Sqlite - Fatal编程技术网

Javascript 如何允许用户删除网站上的数据?

Javascript 如何允许用户删除网站上的数据?,javascript,python,html,sqlite,Javascript,Python,Html,Sqlite,我试图实现的是一个网站,允许用户登录,创建抽认卡,并在需要时删除它们。在“查看”页面上,用户将看到一个包含所有创建的抽认卡的表,以及每行旁边的删除按钮。该表是通过从sqlite数据库逐行打印数据创建的。我已经到了用户可以从表中删除行的地步,但是一旦他们刷新页面,删除的行就会再次返回,因为删除不会影响sqlite数据库 我应该如何允许用户从sqlite数据库中删除数据?我知道我应该以某种方式使用db.execute(“DELETE…”),但我不确定如何将其链接到表中的DELETE按钮 相关HTML

我试图实现的是一个网站,允许用户登录,创建抽认卡,并在需要时删除它们。在“查看”页面上,用户将看到一个包含所有创建的抽认卡的表,以及每行旁边的删除按钮。该表是通过从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)