1

我无法对从数据库中提取的信息进行样式设置。如果有人可以提供帮助,我将不胜感激。我尝试在 while 循环中定义 $style,然后将其分配给 $questions,但网页上没有任何反应。我一般是编码新手,虽然我对 css 有一些了解,但我不知道你是如何在 php 脚本中使用它的。

我试图把每个问题放在背景的风格*

#frm1
        {
            background: #D9D9D9;
            margin:auto;
            top:150px; left:200px; width:880px; height:60px;
            position:absolute;
            font-family: "Comic Sans MS", cursive, sans-serif;
            font-size: 9px;
            font-style: italic;
            line-height: 24px;
            font-weight: bold;
            text-decoration: none;
            -webkit-border-radius: 10px;
            -moz-border-radius: 10px;
            border-radius: 10px;
            padding:10px;
            border: 1px solid #999;
            border: inset 1px solid #333;
            -webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.5);
            -moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.5);
            box-shadow: 0px 0px 40px rgba(0, 0, 0, 0.7);
         }

PHP 代码从数据库中检索信息*

if (mysql_num_rows($result) >= 0)
    {
        $toggle = false;
        while ($rows = mysql_fetch_array($result, MYSQL_ASSOC) and $i<10 ) 
             {
                        $i++;
                        $toggle = !$toggle;
                        if($toggle)
                        $style = "id:frm1;";
                        else
                        $style = "background: white;";

                        questions .= "<a style='$style'> </a>";
                        questions .= "Titlee: " ."<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['title'] . "</a> <br> ";
                        questions .= "Details: " . "<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['detail'] . "</a> <br>  ";
                        questions .= "Category: " . "<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['categories'] . "</a> <br> <br> <br> ";
                    }
                    echo  questions;
                } 
4

6 回答 6

1

虽然我对 css 有一些了解,但我不知道您如何在 php 脚本中使用它。

好的。

您的 PHP 脚本是服务器上的 PHP 脚本,并为用户生成一个常规的 HTML 页面。[见答案底部,我会尽量给你一个快速的概述]

您可以像使用普通 HTML 页面一样使用 CSS,尽管受到 PHP 的支持,它也能正常工作。

这意味着不要使用 style="$style"。样式属性不好。

看起来你想有条件地构建你的 CSS,我的建议是:

  • 使用 PHP 更改一个类,并拥有一个作用于该类的外部样式表
  • 将您有条件地更改的样式放在<style>标题中的标签内,并使用 PHP 更改这些样式。

此答案将使用第一个选项 (已编辑以考虑新信息)

在您的 PHP 代码中,在您的链接之前:

if($toggle) {
    $questions.='<div id="frm1">';
}
else {
    $questions.='<div id="frm2">';
}

在您的 PHP 代码中,在您的链接之后:

 $questions .= "</div>";

最后,在您的外部样式表或您的头内<style>标签中:

#frm1 {
   ...
}
#frm2 {
   ...
}



服务器端语言的快速概览

所以,网络编程。这通常通过两种方式完成。客户端(阅读:javascript)和服务器端(在您的情况下,阅读:php,但还有很多)。

使用像 javascript 这样的客户端语言,代码实际上被发送到 Web 浏览器。然后,Web 浏览器会根据脚本要求它执行的操作来修改页面的内容。这意味着您的用户可以看到代码,甚至可以在他们的 Web 浏览器中将其关闭或在其位置执行其他 javascript。

使用服务器端语言,有不同的工作流程。

  1. 用户请求您的网页(由其 URL 标识)
  2. 网络服务器(阅读:你的虚拟主机)接收到这个请求,并查找网页是什么
  3. 发现网页是php页面,服务器执行php代码
  4. php 代码为服务器提供了一个 html 页面(如您所见,您已经构建了该页面,您的 php 脚本输出了 HTML)
  5. 服务器将生成的 html 代码发送给用户

请注意,Web 浏览器是执行所有 HTML 和 CSS 处理的组件,它永远不会看到 php.ini 文件。当您的 php 脚本到达您的用户时,它只是一个 html 页面。

因为网络浏览器只看到一个 HTML 页面,所以在 php 脚本上使用 CSS 和在常规 HTML 页面上使用 CSS 之间没有功能上的区别。

于 2012-12-07T06:38:15.853 回答
0

你可以在你的柜台上交替$i切换$i % 2两个 CSS 类。这将为您0, 1, 0, 1, 0, 1, ...依次选择第一个和第二个 CSS 类名称。

PHP:

$css_class = array('frm1', 'second');
while ($rows = mysql_fetch_array($result, MYSQL_ASSOC) and $i<10 )
{
    $i++;
    questions .= "<a class='$css_classes[$i % 2]'> </a>";
    questions .= "Titlee: " ."<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['title'] . "</a> <br> ";
    questions .= "Details: " . "<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['detail'] . "</a> <br>  ";
    questions .= "Category: " . "<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['categories'] . "</a> <br> <br> <br> ";
}

并在您的 CSS 文件中定义两个类

.frm1 {
    background: #D9D9D9;
    margin:auto;
    top:150px; left:200px; width:880px; height:60px;
    position:absolute;
    ...
}

.second {
    background: white;
}
于 2012-12-07T06:49:58.360 回答
0

这将起作用:

if (mysql_num_rows($result) >= 0) {
    $toggle = false;
    while ($rows = mysql_fetch_array($result, MYSQL_ASSOC) and $i<10 ) {
        $i++;
        $toggle = !$toggle;
        if($toggle)
        $style = "background: #D9D9D9;"; else
        $style = "background: green;";

        questions .= "<a href='#' style='display:block;$style'> </a>";
        questions .= "Titlee: " ."<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['title'] . "</a> <br> ";
        questions .= "Details: " . "<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['detail'] . "</a> <br>  ";
        questions .= "Category: " . "<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['categories'] . "</a> <br> <br> <br> ";
    }
    echo  questions;
}

问题是您的 a-tag 没有 href 属性,并且由于它是内联显示的(默认行为),因此背景 CSS 属性将不起作用。

于 2012-12-07T06:29:32.953 回答
0

正如本所说,使用类。

首先创建一个类

<style>
.gray{background: #D9D9D9;}
.green{background: green;}
</style>

然后试试这个

if (mysql_num_rows($result) >= 0)
    {
        $toggle = false;
        while ($rows = mysql_fetch_array($result, MYSQL_ASSOC) and $i<10 ) 
             {
                        $i++;
                        $toggle = !$toggle;
                        $style = ($toggle)?"green":"gray";

                        $questions .= "<a class='".$style."'> Put some thing here </a>";
                        $questions .= "Titlee: " ."<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['title'] . "</a> <br> ";
                        $questions .= "Details: " . "<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['detail'] . "</a> <br>  ";
                        $questions .= "Category: " . "<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['categories'] . "</a> <br> <br> <br> ";
                    }
                    echo  $questions;
    }

请尝试一下,我没有测试过,但它应该可以工作,根据您的需要。

于 2012-12-07T06:55:51.527 回答
0

代替样式,构建类并在 css 中定义它们。

if ($toggle)
     $questionClass="redBackground";
else
     $questionClass="greenBackground";
$questions.="<a class='$questionClass'>";

另外,一定要研究 mysqli 或 pdo。mysql_ 函数已被弃用,几乎没有那么酷!

于 2012-12-07T06:39:01.377 回答
0

你可以做 -

if (mysql_num_rows($result) >= 0)
{
    $toggle = false;
    while ($rows = mysql_fetch_array($result, MYSQL_ASSOC) and $i<10 ) 
         {
                    $i++;
                    $toggle = !$toggle;
                    if($toggle)
                      $style = "bg";
                    else
                      $style = "bg_green";
                    echo("<a class='".$style."'> </a>");
                    echo("Titlee: " ."<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['title'] . "</a> <br> ");
                    echo("Details: " . "<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['detail'] . "</a> <br>  ");
                    echo("Category: " . "<a href='show_question2.php?question_id=" . $rows["question_id"] . "'>". $rows['categories'] . "</a> <br> <br> <br> ");


          } 

在这个文件中添加 -

<style type="text/css">
    .bg {
         background: #D9D9D9;
      }
      .bg_green {
         background: green;
      }
</style>
于 2012-12-07T06:45:57.717 回答