有点随机练习,但我想从现有表中获取内容并根据所获取的条目创建一个新表。
在上图中,左边的表格是我必须使用的。右边的蓝色表格是我要创建的;使用左侧表格中的数据。
这可以用 jQuery 或一些基本的 PHP 来完成吗?
如果您想知道我为什么这样做是因为我无法访问 SQL 数据库并且我想使用 Google Charts API 来显示每个月的用户注册总数。
与往常一样,非常感谢您的帮助。
使用 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/
注意:此解决方案中未完成表格外观格式设置
您是否希望使用 jQuery 或 PHP 的问题取决于这些表格的内容在页面加载后是否可能发生变化。如果页面不会改变,你应该使用 PHP。
假设表格是使用while
orforeach
循环生成的,您可以简单地为表格中的每个选项设置计数。在循环中,如果您检查此列中的内容并添加到适当的任意计数,您可以计算每个中有多少。
检查内容是什么以及它是否已经在您的数组中可能会很好。
希望能为这个问题背后的思考提供一些初步的帮助!
你可以试试这个(你没有提供更多信息,所以可能只是一个想法)
HTML idmaintable
可以用另一个 id/class 来改变,或者只是table
<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,在这种情况下,您必须更改id
or class
(如果有的话),甚至您可以不使用table
任何 id 或类名,但确保只有一个表当您仅使用时$('table')
,如果您可以将表格包装在父 div 中,那么您可以使用$('div#parentDivId table')
.