【问题标题】:onclick for a div needs to delete a mysql database recorddiv的onclick需要删除mysql数据库记录
【发布时间】:2012-03-22 09:45:35
【问题描述】:

编码标准到位意味着我没有为此使用 ajax 的选项。

用户已登录,SESSION 会跟踪他/她。登录时,他们的列表 从 mysql 中检索(服务器端)古代人类文物,并由 heredoc 显示它们 在 div 行中 - 每个 div 是一个带有一个工件的行 - 这里有两个 div 行:

     'bronze-age tool' 'egypt'   'photo: tool3_found_1964-Feb_dig.jpg'
     'decorated bowl'   'Shang Dynasty/China'  'photo: shang-bowl.png'

用户之前上传的这些工件的列表显示在 heredoc 中 一组 div 行。

div 列表不是表单。我可以将每一行(每个工件)做成一个表格来解决 我的问题,但它似乎很笨拙。用户必须能够单击 div 以 选择highlight 在 div 行中的那个工件(以及我已经得到的选择/突出显示部分 工作,当然都是客户端javascript)。

然后,将 div 行上方的“删除”按钮从禁用更改为启用。

当点击“删除”按钮时,我需要点击服务器,给它选择的 div 的工件, 并且服务器已经知道登录用户(他们在 SESSION 中),然后服务器必须 删除该工件,当页面重新加载时,BAM 该工件的行现在从上面消失了 工件 div 列表。

如果我让每个 div-row 工件成为一个表单,在我的那个 div-row 的 onclick 处理程序中,我可以 以编程方式 submit() 该 div-row 表单(使用 javascript)以删除该工件,这将起作用。

但是让每个 div 都有自己的风格在 imo 上很糟糕。

我可以将整个heredoc 的div 集做成一个表单。但是,在提交时, 因为只有一个 div-row 被删除,服务器将被赋予一个潜在的大 一组 div,其中只有一个是要删除的“选定”div,并且必须 遍历 POST 数组并以某种方式从大量 div 中找到“选定”的 div 在 POST 数组中。

至少如果所选工件的每个 div 行都是其自身的形式,则 POST 数组 只会包含一个 div 的内容——用户想要删除的选定 div—— 然后服务器立即知道要删除哪个mysql记录(选定的div artifact) 无需遍历可能巨大的 div 形式,只需其中一个 div 是要删除的。

除了“整个heredoc是一个表单”和“每个div都是一个表单和一个程序化的submit() 删除选定的 div' - 有没有更好的方法来实现这一点我没有看到?

【问题讨论】:

    标签: php javascript mysql html heredoc


    【解决方案1】:

    在您的列表之外创建一个表单,其中包含工件 ID 的隐藏输入字段。在删除按钮的 onclick 中,更新该隐藏字段并提交表单。

    表格:

    <form id="delete_artifact_form" action="delete_action" method="post">
        <input type="hidden" name="artifact_id" id="delete_artifact_id" />
    </form>
    

    删除函数:

    function delete_artifact( id ) {
        document.getElementById( "delete_artifact_id" ).value = id;
        document.getElementById( "delete_artifact_form" ).submit( );
    }
    

    【讨论】:

    • 我从未使用过“隐藏”表单——很酷的技术。我会去的!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 2010-09-14
    • 2012-05-15
    • 2023-04-01
    • 2010-10-14
    • 2010-10-04
    相关资源
    最近更新 更多