-1

有点随机练习,但我想从现有表中获取内容并根据所获取的条目创建一个新表。

在此处输入图像描述

在上图中,左边的表格是我必须使用的。右边的蓝色表格是我要创建的;使用左侧表格中的数据。

这可以用 jQuery 或一些基本的 PHP 来完成吗?

如果您想知道我为什么这样做是因为我无法访问 SQL 数据库并且我想使用 Google Charts API 来显示每个月的用户注册总数。

与往常一样,非常感谢您的帮助。

4

3 回答 3

1

使用 JQuery 可以通过这种方式完成

//initialize monthArray
var monthArr = [{month:'April', occ:0}, {month:'May', occ:0},{month:'June', occ:0}];

//read occurrences for MonthNames in your existing table
$.each(monthArr, function(n,i){
    var _occ = $("td:contains('"+monthArr[n].month+"')").size();
    monthArr[n].occ = _occ;
});

// create new table and show the values
$.each(monthArr, function(index, value) {
  //alert(value.occ+ ': ' + value.month);
    $('#inTable').append('<tr><td>'+value.month+'</td><td>'+value.occ+'</td></tr>');
});

这是小提琴:http: //jsfiddle.net/A3WeJ/38/

注意:此解决方案中未完成表格外观格式设置

于 2012-10-12T18:59:21.933 回答
0

您是否希望使用 jQuery 或 PHP 的问题取决于这些表格的内容在页面加载后是否可能发生变化。如果页面不会改变,你应该使用 PHP。

假设表格是使用whileorforeach循环生成的,您可以简单地为表格中的每个选项设置计数。在循环中,如果您检查此列中的内容并添加到适当的任意计数,您可以计算每个中有多少。

检查内容是什么以及它是否已经在您的数组中可能会很好。

希望能为这个问题背后的思考提供一些初步的帮助!

于 2012-10-12T18:02:34.510 回答
0

你可以试试这个(你没有提供更多信息,所以可能只是一个想法)

HTML idmaintable可以用另一个 id/class 来改变,或者只是table

​&lt;table id="maintable">
    <thead><th>Name</th><th>Join Month</th><th>Join Year</th></thead>
    <tbody>
        <tr><td>Joe Blogs</td><td>April</td><td>2012</td></tr>
        <tr><td>Mr. X</td><td>April</td><td>2012</td></tr>
        <tr><td>Andrew Xmen</td><td>April</td><td>2012</td></tr>
        <tr><td>Matt Bblogs</td><td>may</td><td>2012</td></tr>
        <tr><td>Malcom McGuiness</td><td>June</td><td>2012</td></tr>
       <tr><td>Friday Needavodka</td><td>June</td><td>2012</td></tr>
    </tbody>
</table>
<div id="myTblDiv"></div>

JS

​$(function(){
    var rows={};
    $('table#maintable tbody tr').each(function(){
        var item=$('td:eq(1)', $(this));
        if(rows.hasOwnProperty(item.text()))
            rows[item.text()]=parseInt(rows[item.text()])+1;
        else rows[item.text()]=1;
    });

    var myTable=$('<table />', {'id':'myNewtable', 'class':'table table-striped'});
    var th=$('<thead><th>Total</th><th>Month</th></thead>');
    var tbody=$('<tbody></tbody>');
    myTable.append(th).append(tbody);
    $.each(rows, function(k, v){
        var row=$('<tr><td>'+v+'</td><td>'+k+'</td></tr>');
        myTable.find('tbody').append(row);
    });
    $('div#myTblDiv').append(myTable);
});​

演示不同的风格

请注意,我(maintable)为 google 生成的表使用了 id,在这种情况下,您必须更改idor class(如果有的话),甚至您可以不使用table任何 id 或类名,但确保只有一个表当您仅使用时$('table'),如果您可以将表格包装在父 div 中,那么您可以使用$('div#parentDivId table').

于 2012-10-12T18:37:06.970 回答