【问题标题】:Changing color of text depending on user selection with PHP, CSS and HTML根据用户选择使用 PHP、CSS 和 HTML 更改文本颜色
【发布时间】:2015-11-18 05:59:40
【问题描述】:

我的作业要求我制作一个颜色选择列表,然后使用 PHP 以所选颜色打印一条语句。这正是它所说的:

  1. 制作一个带有以下颜色选项的选择选项列表的 HTML 表单: 红色、蓝色和绿色。

    当用户做出选择并单击提交按钮时,将显示 以他们选择的任何颜色下​​一行。例如,如果他们选择红色, 它看起来像......

    让我快乐

使用 CSS 类来设置文本的颜色。

这是他说要做的:

HTML

    <p>
    <select name="colorchoice" size="1">
    <option value="redtext">Red</option>
    <option value="bluetext">Blue</option>
    <option value="greentext">Green</option>
    </select>
    </p>
    <p>
    <input type="submit" value="Submit Information">
    </p>

PHP

    <?php
    $colorvalue = $_POST['colorchoice'];
    print "<span class='".$colorvalue."'> Color me happy.</span>";
    ?>

显然,如果没有一些 CSS,这是行不通的,但他没有提及,这很有帮助。

【问题讨论】:

  • 你可以使用 Javascript 或 jquery 吗?
  • 不,只有 HTML、PHP 和 CSS。我在这里找到了一个 js 解决方案。
  • 在你的 CSS 中添加这个 -> .redtext{color:red;} .bluetext{color:blue;} .greentext{color:green;}
  • 将 $_POST 更改为 $_GET,因为默认情况下,表单使用 GET 方法提交其数据,如果您错过了它 - 我看不到任何表单包装器
  • 添加的类是我的第一步。刚刚更改了帖子以获取 HTML 和 PHP。我们还没有涵盖上课的内容,哈哈。有一个表单包装器,我只是没有包含它。不过还是不行。

标签: php html css


【解决方案1】:

为了你,一切都尽可能简单

<style>
    .red   { color: red; }
    .green { color: green; }
    .blue  { color: blue; }
</style>

<form>
    <select name="color">
        <option value="red">Red</option>
        <option value="green">Green</option>
        <option value="blue">Blue</option>
    </select>
    <input type="submit" value="Color me!">
</form>

<?php
    if ( isset($_GET['color']) ) {
        print '<span class="' . $_GET['color'] . '">Color me happy.</span>';
    }
?>

【讨论】:

  • 想详细说明 $_POST 和 $_GET 之间的区别吗? Get 甚至还没有在课堂上被提及...
【解决方案2】:

myform.html:

<form action="ColorMe.php" method="post">
<select name="color">
<option value="red">Red</option>
<option value="blue">Blue</option>
<option value="green">Green</option>
</select>
<br/>
<input type="submit" value="Set Color"/>
</form>

ColorMe.php:

<?php
//Session is started for a PHP cookie to be resumed/created:
session_start();

//Gets the color from the form:
$Color = $_POST['color'];

//Sets the color to the PHP session UserColor:
$_SESSION['UserColor'] = $Color;

//Redirects to whatever page you want
header("Location: /MyPage.php");

MyPage.php:

<?php 
//Starts the session again to make the PHP session resources available:
session_start();

//Checks if the PHP session variable has been set:
if(isset($_SESSION['UserColor'])){

//If it is set: make $Color be whatever user selected:
$Color = $_SESSION['UserColor'];

}

//Otherwise, if not set:
else{

//Default color will be black:
$Color = "black";
}
?>
<html>
<head>
<title>My Colored Page</title>
</head>
<body>
<h1 style="color: <?php echo $Color; ?>;">Colored Text</h1>
<p style="color:<?php echo $Color; ?>;">Colored paragraph.</p>
</body>
</html>

这是你想要的吗? :)

【讨论】:

    【解决方案3】:

    color.html 文件代码:

    <form action=color.php method=post
    <select name="colorchoice">
    <option value="red">Red</option>
    <option value="blue">Blue</option
    <option value="green">Green</option>
    </select>
    <input type="submit"/>
    </form>
    

    color.php文件代码:

    <?php
    $colorvalue=$_POST['colorchoice'];
    echo "<span style='color:". $colorvalue."'>Color me happy.</span>";
    ?>
    

    【讨论】:

      【解决方案4】:

      我认为你是 PH​​P 和 HTML 的新手,所以我会给你一个非常简单的解决方案,没有困难,就在现在,祝你一切顺利

      <?php
      if (isset($_POST['colorchoice'])) {
      $colorvalue =$_POST['colorchoice'];      
      print "<span ><font color=".$colorvalue.">Color me happy.</font></span>";
            }else{}    ?>
      <form action="#" method=post>
      
      <p> <select  name="colorchoice" size="1">
      <option value="redtext">Red</option>
      <option value="bluetext">Blue</option>
      <option value="greentext">Green</option>
      </select>
      </p>
      <p>
      <input type="submit" value="Submit Information"></form>
      </p>
      

      注意:

      当你开始编码时,请确保你打开标签关闭它,在你的代码中你忘记打开表单标签,所以要小心

      【讨论】:

        【解决方案5】:

        你可以这样做

        <?php $colorvalue = $_POST['colorchoice'];
        if($colorvalue == 'red'){?>
           <span style="color:red"> Red text </span>
         <?php } ?>
         if($colorvalue == 'green'){?>
           <span style="color:green"> green text </span>
         <?php } ?>
        

        显然,您可以为每种颜色添加单独的类,而不是内联 css。并根据自己的意愿制定其他条件

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-01-12
          • 2017-11-11
          • 2017-08-01
          • 2016-08-27
          • 2017-08-15
          • 2014-07-16
          • 2019-01-08
          相关资源
          最近更新 更多