【问题标题】:[DataGridClass]: How to make second column of the resultset a hyperlink?[DataGridClass]:如何使结果集的第二列成为超链接?
【发布时间】:2009-10-24 08:50:05
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php html


    【解决方案1】:

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

       $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 - 它部分消除了添加链接的需要,因为您可以向每一行添加自定义操作。

    【讨论】:

    • 感谢您提供的替代解决方案。
    【解决方案2】:

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

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

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

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

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

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

    如果您需要显示网址而不是制作链接。

    我仔细阅读了该课程,并认为如果不修改它就没有其他解决方案,因为您无法连续处理单个列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 2021-10-05
      • 2012-03-23
      • 2020-09-05
      • 2013-05-19
      • 2018-09-30
      • 2014-04-04
      相关资源
      最近更新 更多