我做了一个网页,左边的一列是逐条显示的记录名,是我通过循环语句从mysql中读取并每行显示出来的。而右边是每条记录的具体内容框架(就是很多空框)。希望实现的目标是:点击左边任何一条记录名称,在右边的各个空框中就具体显示出该记录具体内容(其实就是每个字段的内容给填充到每个空框中去)。
该用怎样的简单框架实现左边的记录名称可点击呢?然后又传递什么变量来控制读取记录,把具体记录信息从mysql读取出来呢(貌似有了该记录内容,显示在各个空框中不难,我可以完成这一步)?当然该每条记录的具体内容在mysql都已经存在,查询即可。


这里的大牛们请多多帮忙啊,这是我第一次问问,事关紧急啊。谢谢。


回复讨论(解决方案)

用ajax做吧

当你点击左侧的记录名时,将记录名用ajax传到后台去查询对应的全部信息 返回后填充至框框内

谢谢回复。

采用ajax,小弟是新手,那大概用到哪些重要语句或者关键点,甚至有没有链接案例啥的让我琢磨琢磨呢?

万分感激啊。

稍等我给你写个demo

万分感谢先。

demo地址 http://www.colg.biz/demo/d1.
代码

显示页



idcol1col2col3col4性别
     



js部分代码,上面已经贴过,就这么多了。

外边方框不见了? 那你仔细观察下html结构 只改需要改的数据不动其他的东西 只改数据绝对不会引起方框不见吧 除非是长度高度问题导致CSS没有约束到


2.eq(1) 找的是第二个 eq(2) 找的是第三个 你确定你没写错?
另外可以这样写

var type = msg.type;
if(type == 1)
{
$(".show_1 > input[name='type']:eq(1)").attr("checked","checked");
$(".show_1 > input[name='type']:eq(2)").removeAttr("checked");
}
else
{
$(".show_1 > input[name='type']:eq(2)").attr("checked","checked");
$(".show_1 > input[name='type']:eq(1)").removeAttr("checked");
}

另外 type之类的关键字用起来看得心惊肉跳的..... 希望这种地方不要出问题


晕死,第一个问题解决了。应该是eq(0)和eq(1)。针对第二个demo我以为这是指选项对应的值,晕死。改回来了。

这个eq(n) 指的是查找符合条件的第n项,从0开始, 比如你这个



































firstname:





lastname:





ID number:





mobile:





email:























这个是一整段这部分的代码,包括各个方框的前后内容。
我怀疑是不是...中包含导致填进去ajax返回的内容时,...也被替换了?

你以前是input的边框 现在input都被你替换掉了

有两个解决方案 一是直接把数值插入input的value中

二是还按现在的写 然后给td加边框让其看起来像之前的

给你写的td.html(xxx) 并不是一定要死板的这么写 你td里边有内容 就随之变化


你以前是input的边框 现在input都被你替换掉了

有两个解决方案 一是直接把数值插入input的value中

二是还按现在的写 然后给td加边框让其看起来像之前的

给你写的td.html(xxx) 并不是一定要死板的这么写 你td里边有内容 就随之变化

把数值插入input的value中,这个又应该怎么改呢?

你说“给你写的td.html(xxx) 并不是一定要死板的这么写 你td里边有内容 就随之变化”,意思其实是不仅td可以用,像

都可以这样用是么?

还有,我看demo以及我随之也用的是$(".show_6").text(..),但ajax中还有$.post()这个函数时,好像就写成$("#show_6").text(..),这两个.show_6和#show_6是不能混用的吧?

这个问题问到现在,太感谢了。


你以前是input的边框 现在input都被你替换掉了

有两个解决方案 一是直接把数值插入input的value中

二是还按现在的写 然后给td加边框让其看起来像之前的

给你写的td.html(xxx) 并不是一定要死板的这么写 你td里边有内容 就随之变化

把数值插入input的value中,这个又应该怎么改呢?

你说“给你写的td.html(xxx) 并不是一定要死板的这么写 你td里边有内容 就随之变化”,意思其实是不仅td可以用,像

都可以这样用是么?

还有,我看demo以及我随之也用的是$(".show_6").text(..),但ajax中还有$.post()这个函数时,好像就写成$("#show_6").text(..),这两个.show_6和#show_6是不能混用的吧?

这个问题问到现在,太感谢了。

使用$.ajax()时,所需要填入的区域用class=".."来标记,而使用$.post()时,是用id=“..”来标记的。这两种标记方式可以混用么?或者是$.ajax()也可以用$("#show_6").text(..),但此时必须用id=“..”来标记?

可以混用 都是选择器而已对jquery来说并没有任何区别


比如 $(".show_tr > td:eq(1)").text(msg.col1);

既然你td内有input并且不能把input粗暴的替换掉

可以写成 $(".show_tr > td:eq(1) >input").val(msg.col1);

你先试试 jquery的选择器是非常灵活的 可以各种套用

09-16 03:33