【问题标题】:Either my if or my variables are messed up我的 if 或我的变量都搞砸了
【发布时间】:2011-09-11 14:50:45
【问题描述】:

我最近刚开始玩 PHP,并给自己做了一个小项目/家庭作业。
这个想法很简单——通过用户输入获得一个数字,画一个圆圈。

我得到了使用 imagearc 的圆圈,所有内容都可以根据用户输入的数字进行缩放。
但是,似乎存在颜色问题。在我的主页上,我创建了四个具有 4 种不同颜色的单选按钮。单选按钮选择圆圈的颜色。
我无法让它工作。即使我检查了所有内容,圆圈也不再显示。这是我尝试使用的代码:

<form method="post" action="circle.php">
<input type="radio" name="color" value="blue" class="color">Blue<br />
<input type="radio" name="color" value="red" class="color">Red<br />
<input type="radio" name="color" value="green" class="color">Green<br />
<input type="radio" name="color" value="yellow" class="color">Yellow<br />
<input type="submit" value="Send" name="submit" />
</form>

来自 index.php,这是我尝试做的事情

$color = $_POST['color'];

if ($color == 'red') {
    $superColor = $red;
    }

// make some color
$white  = imagecolorallocate($img, 255, 255, 255);
$red    = imagecolorallocate($img, 255, 0, 0);

// draw the circle
imagearc($img, ($height + 10) / 2, ($width + 10) / 2, $circumference, $circumference, 0, 360, $superColor);

我还是新手,还在学习,所以我想有一种更简单、更漂亮的方法。这只是我的尝试。我在这里做错了什么?

提前致谢

编辑:感谢您的快速回答!我已经尝试过你们(或女孩)告诉我要做的事情,从 ID 更改为姓名并将 == 'red' 放在引号中 - 但它不起作用。
我认为这与我的 if 语句有关。难道不应该通过简单的 $superColor = $red 将 $red 中存储的信息提供给 $superColor 吗?
如果没有,我应该怎么做?我的 imagearc 中没有任何显示,如果我将 $superColor 更改为 $red,它会显示一个漂亮的红色圆圈。

回声测试表明 $_POST['color'];工作得很好

【问题讨论】:

  • 那么,在 if 语句之前,您是否为 $red 分配了任何东西?如果这是完整的代码,那么 $red 直到几行之后才会被分配,因此,您正在尝试将 $superColor 分配给一个尚不存在的变量。

标签: php


【解决方案1】:

您使用名称而不是 ID 索引 $_POST。将您的输入定义更改为 name="color"。

【讨论】:

    【解决方案2】:

    您的单选按钮需要name 属性。

    【讨论】:

      【解决方案3】:

      if ($color == 'red') {

      “red”是一个字符串。你需要引用它。

      【讨论】:

        【解决方案4】:

        试试if ($color == "red") {。您忘记在红色周围加上引号。

        【讨论】:

          猜你喜欢
          • 2014-06-19
          • 1970-01-01
          • 1970-01-01
          • 2018-04-02
          • 1970-01-01
          • 1970-01-01
          • 2014-03-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多