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来定位到该元素,修改时取到该属性再解密就可以和你的数据关联起来。

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

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog