数据显示的问题(进入再讲详细点)

vince_zheng 2013-02-21 02:20:39
一个购物网站的购物车,是怎么显示放进购物车的物品的数据的。
我看到的源代码就这有这么一段。
<table id="SignFrame" width="925" style="line-height:20px;" border="0" align="center" cellpadding="0" cellspacing="0">
<tr id="trHeader">
<td width="110" height="35" align="center" valign="middle" background="images/Gridtopimg.gif">商品</td>
<td width="333" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">商品名称</td>
<td width="123" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">颜色</td>
<td width="103" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">尺码</td>
<td width="152" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">单价</td>
<td width="118" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">数量</td>
<td width="120" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">金额小计</td>
<td width="106" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">删除</td>
</tr>

<tbody id="newbody"></tbody>
</table>


然后,就不知道是怎么实现显示购物车里的物品的。
下面的图就是购物车的显示购物的物品:

...全文
132 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycproc 2013-02-22
  • 打赏
  • 举报
回复
很有可能是JS操作的,做了追加元素的操作。 可以在JS里面找找
cjh200102 2013-02-22
  • 打赏
  • 举报
回复
楼上不错
引用 8 楼 Joyhen 的回复:
完全都是js在操作的,提供下思路。 1.计算问题: JavaScript code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576……
joyhen 2013-02-21
  • 打赏
  • 举报
回复
完全都是js在操作的,提供下思路。 1.计算问题:

//=============================================数学计算 Start=============================================
//加法函数
function FloatAdd(arg1, arg2) {
    var r1, r2, m;
    try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
    try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
    m = Math.pow(10, Math.max(r1, r2))
    return (arg1 * m + arg2 * m) / m
}
//减法函数
function FloatSub(arg1, arg2) {
    var r1, r2, m, n;
    try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
    try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
    m = Math.pow(10, Math.max(r1, r2));
    n = (r1 >= r2) ? r1 : r2;
    return ((arg1 * m - arg2 * m) / m).toFixed(n);
}
//乘法函数
function FloatMul(arg1, arg2) {
    var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
    try { m += s1.split(".")[1].length } catch (e) { }
    try { m += s2.split(".")[1].length } catch (e) { }
    return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
}
//除法函数
function accDiv(arg1, arg2) {
    var t1 = 0, t2 = 0, r1, r2;
    try { t1 = arg1.toString().split(".")[1].length; } catch (e) { }
    try { t2 = arg2.toString().split(".")[1].length; } catch (e) { }
    with (Math) {
        r1 = Number(arg1.toString().replace(".", ""));
        r2 = Number(arg2.toString().replace(".", ""));
        return (r1 / r2) * pow(10, t2 - t1);
    }
}

/*
* 将数值四舍五入(保留2位小数)后格式化成金额形式
*
* @param num 数值(Number或者String)
* @return 金额格式的字符串,如'1,234,567.45'
* @type String
*/
function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0"; //不是数字让它为0
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
    num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + num + '.' + cents);
}

//四舍五入
function FormatNumber(srcStr, nAfterDot) {
    var srcStr, nAfterDot;
    var resultStr, nTen;
    srcStr = "" + srcStr + "";
    strLen = srcStr.length;
    dotPos = srcStr.indexOf(".", 0);
    if (dotPos == -1) {
        resultStr = srcStr + ".";
        for (var nIndex = 0; nIndex < nAfterDot; nIndex++) { resultStr = resultStr + "0"; }
    } else {
        if ((strLen - dotPos - 1) >= nAfterDot) {
            nAfter = dotPos + nAfterDot + 1;
            nTen = 1;
            for (var nIndex = 0; nIndex < nAfterDot; nIndex++) { nTen = nTen * 10; }
            resultStr = Math.round(parseFloat(srcStr) * nTen) / nTen;
        } else {
            resultStr = srcStr;
            for (var nIndex = 0; nIndex < (nAfterDot - strLen + dotPos + 1); nIndex++) { resultStr = resultStr + "0"; }
        }
    }
    return resultStr;
}

//=============================================数学计算 End=============================================
2.删除添加都很简单,用jq+ajax即可,对应页面用remove和append 3.cookies操作,js的cookies大把的,自己找下 4.你这么去计算,这个你需要找到单价和数量,完全jq筛选标签,获取内容得到,我喜欢用attr来获取,当然有人会用隐藏控件存储,个人觉得太烦了 具体的看http://www.school51.com/Sell/shoppingcart.aspx的页面源代码,现成的,不明白的M我邮件
vince_zheng 2013-02-21
  • 打赏
  • 举报
回复
引用 5 楼 yyl8781697 的回复:
LZ应该疑惑的是 明明在源码中没有商品详细的信息(只有定义的表头),却能显示 其商品信息是吧?? 他的设计应该是用js中插入了html的 那么js中的商品数据哪里来呢 1:数据可能是存数据库的,通过ajax异步加载得到相应的数据 再append进table 2:数据也可能是存入cookie里面的,js直接取来添加进append进table 当然 LZ也可以不向那样实现 完全可……
结帖率:66.67% #6 得分:0 回复于: 2013-02-21 17:32:15 LZ应该疑惑的是 明明在源码中没有商品详细的信息(只有定义的表头),却能显示 其商品信息是吧?? 他的设计应该是用js中插入了html的 那么js中的商品数据哪里来呢 1:数据可能是存数据库的,通过ajax异步加载得到相应的数据 再append进table 2:数据也可能是存入cookie里面的,js直接取来添加进append进table 当然 LZ也可以不向那样实现 完全可以直接查询 然后用foreach直接在table相应的块里面数据html 我学习的那个网站就是如你所说的哈,它是用js来添加进去的,找了好久的代码了。哈哈
vince_zheng 2013-02-21
  • 打赏
  • 举报
回复
LZ应该疑惑的是 明明在源码中没有商品详细的信息(只有定义的表头),却能显示 其商品信息是吧?? 他的设计应该是用js中插入了html的 那么js中的商品数据哪里来呢 1:数据可能是存数据库的,通过ajax异步加载得到相应的数据 再append进table 2:数据也可能是存入cookie里面的,js直接取来添加进append进table 当然 LZ也可以不向那样实现 完全可以直接查询 然后用foreach直接在table相应的块里面数据html 我学习的那个网站就是如你所说的哈,它是用js来添加进去的,找了好久的代码了。哈哈。
yyl8781697 2013-02-21
  • 打赏
  • 举报
回复
LZ应该疑惑的是 明明在源码中没有商品详细的信息(只有定义的表头),却能显示 其商品信息是吧?? 他的设计应该是用js中插入了html的 那么js中的商品数据哪里来呢 1:数据可能是存数据库的,通过ajax异步加载得到相应的数据 再append进table 2:数据也可能是存入cookie里面的,js直接取来添加进append进table 当然 LZ也可以不向那样实现 完全可以直接查询 然后用foreach直接在table相应的块里面数据html
风之子1 2013-02-21
  • 打赏
  • 举报
回复
楼上的朋友说的很清楚了
threenewbee 2013-02-21
  • 打赏
  • 举报
回复
<table id="SignFrame" width="925" style="line-height:20px;" border="0" align="center" cellpadding="0" cellspacing="0"> <tr id="trHeader"> <td width="110" height="35" align="center" valign="middle" background="images/Gridtopimg.gif">商品</td> <td width="333" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">商品名称</td> <td width="123" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">颜色</td> <td width="103" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">尺码</td> <td width="152" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">单价</td> <td width="118" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">数量</td> <td width="120" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">金额小计</td> <td width="106" height="30" align="center" valign="middle" background="images/Gridtopimg.gif">删除</td> </tr> <tbody id="newbody"> <% foreach (var item in Session["Cart"]) { %> <tr> <td><% =item.商品名称 %></td> <td><% =item.颜色 %></td> ... </tr> <% } %> </tbody> </table>
cxy521 2013-02-21
  • 打赏
  • 举报
回复
用Repeater GridView 都可以,如果你美工好的话 用DIV+CSS 直接输出HTML
yue547283947 2013-02-21
  • 打赏
  • 举报
回复
Repeater GridView Table 都行啊

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧