osborn0221 2010-09-13 18:04
浏览 174
已采纳

请教 关于在页面上循环显示数据的格式问题

很多时候会遇到这样的情况:
要从数据库拿出一组数据,格式化之后循环输出到页面上(例如相册里的图片)。然后要在每个数据上加个onclick事件,点击后弹出一个DIV,用来修改数据(不是提交表单,只是在页面上修改数据,或者发ajax请求,改完后直接显示在同页面上)。

我想讨论的问题是:
怎样让弹出的这个DIV定位到指定的数据上呢?

我现在想到的方法有:
1、给每个数据加个唯一的ID

data1
data2
function showchange(id){ document.getElementById("targetDiv").value = id; var data = document.getElementById(id).innerHTML; document.getElementById("modDiv").style.display = "block"; }

这样的。点击之后把传入的ID存到全局变量或隐藏域里,用户改完后再用JS读到这个ID完成页面上的修改。

2、用this对象

data1
data2
function showchange(div){ globalTargetDiv = div; var data = div.innerHTML; document.getElementById("modDiv").style.display = "block"; }

直接从元素里拿东西。

请问哪个方法比较好?大家平时都是怎样处理这类问题的?
如果用第一个方法的话,循环输出的那些DIV的ID一般是自己随便定义一个,还是直接使用例如数据库里记录的ID之类的信息?
之所以会这么问,是因为整个页面改好提交的时候,更新到数据库时,会需要这些数据的ID……数据的ID一般要怎样存在页面上呢?是用隐藏域还是直接设成DIV的ID?小弟是新手,被这些问题纠结了挺长时间了……因为总觉得把数据库里的ID直接显示到页面上不太好……

  • 写回答

1条回答 默认 最新

  • sl166543210 2010-09-14 14:28
    关注

    我觉得一个页面里的结构很复杂的话尽量不用ID,因为那样你得保证页面里ID的唯一性。你可以将1,2两种方法结合起来,输出div时,将你的DB里的数据ID加密后输出到页面(可以自定义属性,不一定非要叫id),然后用this来定位到该元素,修改时取到该属性再解密就可以和你的数据关联起来。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站