PHP表单包含多个问题,每个问题都有多个选项,这些选项可根据选择输出文本响应

时间:2018-08-16 22:44:48

标签: php html forms

我正在尝试创建一个简单的PHP脚本,以针对不同的客户问题创建罐头响应。我想要一些可以通过复选框或下拉菜单接受多个答案的不同问题。仅供参考,我是个初学者,请原谅我的无知。我用switch语句尝试过,但是遇到了需要使用多个变量的问题。然后,我尝试了多个elseif语句,但无法通过第一个问题进行评估。每个复选框本质上都有一个摘录,当它被选中时会回显。因此,对于三个问题,输出实际上将创建三个按顺序显示的摘要。这样,我可以简单地复制并粘贴输出。如果有人可以帮助我,甚至只是指向正确的方向,我将不胜感激。我做了很多谷歌搜索,还没有得到我需要的东西。

这里有一些我未完成的测试代码,以查看是否可以解决。当我尝试此操作时,只有颜色部分有效。不管实际选择了什么,食物的下一部分始终作为“其他”部分进入评估。

<?php
if(isset($_POST['submit'])) {
   $color_val = $_POST['Color'];
   $food_val = $_POST['food'];
   $drink_val = $_POST['drink'];


   if ($color_val == "Red") {
       echo "Red blurb";
       echo "<br>";
   }
   elseif ($color_val == "Green") {
       echo "Green blurb turb";
       echo "<br>";
   }
   elseif ($color_val == "Blue"){
       echo "True blue homey";
       echo "<br>";
   }

   else {
       echo "none selected";
       echo "<br>";
   }

   if ($food_val == "Wings") {
       echo "wingy wings";
       echo "<br>";
   }
   elseif ($food_val == "Pizza") {
       echo "pizza, pizza";
       echo "<br>";
   }
   else {
       echo "nothing selected";
       "<br>";
   }
?>


form action="#" method="post">
   <select name="Color">
       <option value="Red">Red</option>
       <option value="Green">Green</option>
       <option value="Blue">Blue</option>
   </select>
   <select name="food">
       <option value="wings">Wings</option>
       <option value="pizza">Pizza</option>
   </select>
   <select name = "drink">
       <option value="soda">Soda</option>
       <option value="water">Water</option>
       <option value="beer">Beer</option>
   </select>

   <input type="submit" name="submit" value="Get Selected Values" />
</form>

2 个答案:

答案 0 :(得分:0)

您处在正确的轨道上,但是您需要处理要与进行比较的字符串的值的差异,或者需要与html和在php中进行测试。

$str = "Wings";
$test = "wings";
if ($str == $test){ //false
    echo "$str == $test";
}
if (strtolower($str) == $test){  //true
    echo "$str == $test";
}

答案 1 :(得分:0)

您的问题是区分大小写,Wings != wings请注意大写字母“ W”与“ w”不同。因此,我们需要将字符串转换为大写或小写。

尝试一下:

if(isset($_POST['submit'])) {
   // convert the strings to lowercase
   $color_val = strtolower($_POST['Color']);
   $food_val = strtolower($_POST['food']);
   $drink_val = strtolower($_POST['drink']);


   if ($color_val == "red") {
       echo "Red blurb";
       echo "<br>";
   }
   elseif ($color_val == "green") {
       echo "Green blurb turb";
       echo "<br>";
   }
   elseif ($color_val == "blue"){
       echo "True blue homey";
       echo "<br>";
   }

   else {
       echo "none selected";
       echo "<br>";
   }

   if ($food_val == "wings") {
       echo "wingy wings";
       echo "<br>";
   }
   elseif ($food_val == "pizza") {
       echo "pizza, pizza";
       echo "<br>";
   }
   else {
       echo "nothing selected";
       "<br>";
   }