【问题标题】:PHP/HTML/CSS: Styling an array of dataPHP/HTML/CSS:设置数据数组的样式
【发布时间】:2011-09-24 03:35:23
【问题描述】:

从数据库中导入数据数组时(我使用的是 php/mysql),如何使用 css 设置这些信息的样式?我假设我将html标签添加到数组中的每个单独的数据中?但如果是这样,我会在哪个阶段分配这些标签?

我对 php 有点陌生,但我对 css 和 xhtml 还算满意。

目前我的数组包含:

Business_Name  |  Address  |  Tel | Service  | Url | Email | Recommendations | Image_Url

任何帮助将不胜感激。

编辑:一张图片描绘一千个单词:0)

【问题讨论】:

  • 在输出中添加 css 和 html,无法确切知道 css\html 是什么,因为您还没有告诉我们您希望它在屏幕上是什么样子。
  • 我认为他的问题实际上比这更基本......你是在问'如何循环这个数组并显示它?'......
  • 这些项目是否进入表单,以便例如可以编辑数据?
  • @brian 不只是想为我的查询的回显结果添加样式。
  • @cups 数据不会进入表单,除了我自己之外的任何人都无法编辑。它将在我的网站上显示为商家信息。

标签: php html css arrays layout


【解决方案1】:

尝试为你的数组做一个for循环宽度

类似

<?php
  echo "<ul>";
 foreach($array as $arrkey){
     echo "<li>".$arrkey."</li>";   

 }
 echo "</ul>";
?>

然后在 &lt;li&gt; 上做一些 CSS。

编辑:

 <?php

   $cont=0;

      echo '<ul>';
     foreach($array as $arrkey){
         echo '<li class="yourclass-.$cont.'">'.$arrkey.'</li>';   
        $cont++;
     }
     echo "</ul>";
    ?>

然后为每个&lt;li&gt;设置样式

喜欢

li.yourclass-0{

}

【讨论】:

  • 只是指出 - $arrkey 是/实际上/该数组元素的值。更好的变量名可能是 $arrval。
  • 是的 $arrkey 是数组元素的值。
  • 如果每个列表项的样式不同会怎样?我可以在哪里添加类或 ID?
  • 如果您打算为数组中的每个元素赋予相同的样式,请使用本文中列出的技术。如果要对数组中的每个元素使用不同的样式,最好使用关联数组并单独列出元素及其类。例如,&lt;span class="business-name"&gt;&lt;?php echo $the_array["business_name"]; ?&gt;&lt;/span&gt; &lt;span class="address"&gt;&lt;?php echo $the_array["address"]; ?&gt;&lt;/span&gt; 等...
  • 但您也可以尝试将 $arrkey 作为一个类。
【解决方案2】:

这是一个相当开放的问题,但我会尽力为您提供一些一般性的指导。

有几个选项可供您选择。最简单、最直接的方法是从 PHP 脚本中输出 HTML,如下所示:

&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;?php echo $arr['Business_Name']; ?&gt;&lt;/td&gt;...&lt;td&gt;&lt;img src="&lt;?php echo $arr['Image_Url']; ?&gt;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

简而言之,echo 是你的朋友。

虽然这并不总是最好的选择 - 如果您的脚本不只是一个非常简单的脚本,那么这种方法可能会变得非常混乱并且很难很快地遵循。您的格式精美的 PHP 被 HTML 搞砸了,它并不漂亮,而且变得难以维护。

在这种情况下,您要做的是将您的关注点分开 - 将“显示”逻辑与“业务”逻辑分开。

这可以通过几种不同的方式完成 - 我建议您查看一些模板工具,如 Smarty 或一些框架,如 Zend - 这些对于将业务逻辑与显示逻辑分离大有帮助。

【讨论】:

  • 感谢您的输入。我真的很想避免任何混乱的事情。我将研究一下模板工具。
【解决方案3】:

我猜你只是在询问“设计”输出。如果是这样,问题就会变得更加模糊。

设计取决于您希望如何向观众展示这些数据。如果您需要表格结构,请使用&lt;table&gt;。或者,如果它们要显示为列表,请使用 &lt;ul&gt;&lt;ol&gt; 并使用 CSS 设置样式。内联添加样式属性是一种非常糟糕的方法。避免这种情况。

就像亚历克斯所说,这个问题非常开放且含糊。尝试进一步完善您的问题。

【讨论】:

    【解决方案4】:

    如果我们假设 $res 是你的结果集,那么,

    $str = "表格宽度='100%'";

    while($row = mysql_fetch_array($res)){ $str .="tr td class='class_name'".$row['col_name']." /td /tr"; }

    $str .= "/table";

    回声 $str;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      • 2016-02-21
      • 2011-02-05
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多