Php 开关语句不工作

Php 开关语句不工作,php,html,switch-statement,Php,Html,Switch Statement,我试图使用switch语句,但它不起作用。我的问题是,例如,我在文本框中输入LazyBoy,它应该回显LazyBoy,否则会回显另一个字符串 <?php $classmap = $_POST['classmap']; switch ($classmap) { case "LazyBoy": echo "You're Lazy!"; break; case "GrayHounds": echo "You're Gra

我试图使用switch语句,但它不起作用。我的问题是,例如,我在文本框中输入LazyBoy,它应该回显LazyBoy,否则会回显另一个字符串

<?php

  $classmap = $_POST['classmap'];

  switch ($classmap) {
    case "LazyBoy":
        echo "You're Lazy!";
        break;
    case "GrayHounds":
        echo "You're Gray!";
        break;
  }

?>
这是表格-

<form action="checkout.php" method="post" >
<input type="hidden" name ="classmap" value="<?php include('db.php');
    $origin = $_POST['origin'];
    $class = $_POST['class'];
    $daten = $_POST['daten'];
    $result = mysql_query("SELECT * FROM route WHERE route LIKE '%$origin%' AND type LIKE '%$class%' AND date LIKE '%$daten%' ");
    while($row = mysql_fetch_array($result))
    {
        echo $row['type'];
    }   ?>">

  </form>

首先,您必须发布值来定义类映射索引

<form method="post">
    <input type="text" name="classmap" value="LazyBoy"/>
    <input type="submit" value="submit"/>
</form>
<?php


  $classmap = (isset($_POST['classmap']) ? $_POST['classmap'] : null);


  switch ($classmap) {
    case "LazyBoy":
        echo "You're Lazy!";
        break;
    case "GrayHounds":
        echo "You're Gray!";
        break;
  }

?>
你的代码是正确的。 我想$u的帖子有问题

试着核实一下

$classmap = "LazyBoy";

您只需检查post变量是否已设置和/或添加默认情况:

if(isset($_POST['classmap'])) {
     $classmap = $_POST['classmap'];

     switch ($classmap) {
        case "LazyBoy":
            echo "Your Lazy!";
            break;
        case "GrayHounds":
            echo "Your Gray!";
            break;
        default:
            echo "Something";
            break;
     }
}
else {
     echo "Something";
}

确保发布到正确的脚本。 尝试将默认语句置于调试状态

$classmap = $_POST['classmap'];

switch ($classmap) {
   case "LazyBoy":
       echo "You're Lazy!";
       break;
   case "GrayHounds":
       echo "You're Gray!";
       break;
   default:
       echo "does not match with previous cases";
}

您的文本框是否明确命名为“classmap”?请发布var\u dump$\u post outputWhat!数据库表列routers.type中的内容是否都属于该隐藏字段?如果可以,您应该这样做。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO,你们如何格式化发布的代码?我的帖子是一串的,没有颜色它总是回显与以前的案例不匹配。因此,您可以尝试回显$ClassMap。OP为什么要尝试此操作?一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。@Jay Blanchart-你是对的。谢谢我只是说试试这个,因为我测试了这个代码。是的,它是LazyBoy或GrayHounds。我总是回显一些东西如果它总是回显一些东西,那么值就不是LazyBoy或GrayHounds。显示变量的内容,就可以确定它是什么:echo$classmap