1

我有一张桌子,里面有我们的 Musician Finder 计划的乐队列表。我们希望按类型对它们进行排序,同时仍然只有一个包含所有信息的 .html 或 .php 文件。

我怎么会开始这样做?最好使用 php 并避免使用 JS,因为我们的大多数用户都没有脚本。这是测试页面的链接HERE。任何建议都会很棒,甚至只是其他人做过的一个例子。
这是粘贴箱上的表格。

谢谢

此外,避免 SQL 是我老板的首要任务。

编辑:所以显然这在 php 中是不可行的。我愿意使用 javascript。或 Jquery。如果这只是一个简单的表,我会很好,但显然我的更详细,我不知道从哪里开始,也没有在谷歌上找到任何东西。如果有人想对此提出任何建议,那就太好了,但老实说,没有人来这里阅读其他人不喜欢的内容,我在 stackoverflow 上提出了一个问题。哈哈。

再次编辑:好的,所以我正在寻找更多......为什么我不能在css中让每个类都有我的<tr>所有,然后使用JS函数将除了正确的类之外的所有类都更改为?这将非常简单。
display:block;display:none;

4

4 回答 4

4

@robert 是正确的,因为您无法在不使用一些 javascript 的情况下对页面上的元素进行排序。所以如果你想用php对你的表进行排序,你必须首先将表的内容放入某种数据集中,比如一个大数组。根据我对您要执行的操作的了解,您的表格的每一行都属于您的可排序类别之一。因此,在定义数组时,您必须指定每行所属的类别,然后对该字段进行排序。

所以你的数组定义可能是这样的:

$master_array[] = array( 
    'category' => 'acoustic',
    'tr_html' => '<tr><td> .... </td></tr>'
);

然后在类别字段上对数组进行排序。一些谷歌搜索会帮助你。

然后在编写表格时,只需执行以下操作:

echo "<table>";
foreach( $master_array as $key => $val ) {
    echo $val["tr_html"];
}
echo "</table>";

希望这可以帮助...

于 2012-10-19T18:02:04.150 回答
1

如果您在 php 中创建一个带有$tbl = array(0 => $arr_row1, 1 => $arr_row2)etc. 属性的“表”对象,那么您可以轻松地创建一个视图方法来使用循环在 html 中呈现 $tbl。(所有 $arr_rowx 都是具有与键相同的列名的关联数组。)

然后,您可以使用此方法在字符串列键上对 $tbl 进行排序或倒序:

public function order($str_key_name, $bool_reverse = false) {
    $code = "return strnatcmp(\$a['$str_key_name'], \$b['$str_key_name']);";
    usort($this->tbl, create_function('$a,$b', $code));
    if ($bool_reverse) $this->tbl = array_reverse($this->tbl);
    return $this->tbl;
}

并在整数列上按顺序重新索引:

public function reIndex($str_index_name, $int_start_index = 0) {
    if ($this->tbl) {
        $num = count($this->tbl);
        for ($i = 0; $i < $num; $i++) 
            $this->tbl[$i][$str_index_name] = ($i + $int_start_index);
    }
    return $this->tbl;  
}
于 2012-10-19T18:02:05.033 回答
0

我最终使用了 jquery。没有JS的任何人都无法排序哈哈。谢谢你们的建议。

于 2012-10-24T20:31:34.180 回答
0

在 JavaScript 中使用现有的表格插件可能是您的最佳解决方案,因为它可以避免返回服务器来执行 JavaScript 可以轻松完成的事情。但是看到您说 JavaScript 不是您的第一选择,那么如果您选择将所有数据存储在 PHP 数组中,那么您可以在 PHP 中执行此操作。

因此,您首先将所有数据放入 PHP 数组中。然后编写一个函数,该函数将按您希望的任何字段对数组进行排序。有许多可用的排序算法。

以默认顺序显示数据表并添加链接,让用户选择不同的列进行排序。在每个链接中,您设置要排序的列的名称,如下所示:

   <a href="mypage.php?sort=name">Sort By Name</a>

然后,您可以简单地使用参数“sort”来决定如何对数组进行排序,然后再将其回显到 HTML 表中。

于 2012-10-19T18:00:07.737 回答