[DataGrid类]:如何使结果集的第二列成为超链接?

时间:2009-10-24 08:50:05

标签: php html

我正在使用以下类在我的主页上显示带有分页的网格外观。这堂课非常好,工作正常。

当网格显示记录时,我只想将第二列值作为超链接。我尝试在$ c正在更新的类中添加一个href ...但它不起作用。谁能帮我吗。

此类还使用“style.css”文件,该文件也可从以下链接获得。那里需要改变吗?

http://www.webmastergate.com/php/paginate-query-results.html

2 个答案:

答案 0 :(得分:1)

在函数getRows()中,靠近设置$ c变量的函数的最后几行。您必须以某种方式测试这是否是您要添加链接的列。建议您设置另一个存储密钥和回调函数的关联数组

   $r = '';
    while ($row = mysql_fetch_assoc($result)) {
        $c = '';

        foreach($row as $key=>$field) {
                //manipulate data here
            $c .= $this->fmtField($key, $field);
        }
        $r .= sprintf($this->rowfmt, $cr ? $classodd : $classeven, $c);
        $cr = 1 - $cr;
    }

我建议的另一个数据网格是http://www.eyesis.ca/projects/datagrid.html - 它可以部分删除添加链接的需要,因为您可以为每一行添加自定义操作。

答案 1 :(得分:1)

你做不到。您可以将格式化的责任委派给mysql查询以获得可能的解决方法。

例如,您可以像这样格式化查询:

SELECT firstField, 
    concat ('<a href="', secondField, '">', thirdField,'</a>') as link_column, 
    ....

假设在第二个字段中您有URL,在第三个字段中您保存了链接的文本。

另一种解决方案(无文本)可以

SELECT firstField, 
    concat ('<a href="', secondField, '">', secondField,'</a>') as link_column,
    ....

如果您需要显示除链接之外的URL。

我已经仔细阅读了这个类,并认为没有修改它就没有其他解决方案,因为你无法连续处理单个列。