【问题标题】:input type radio + text area in a php script在 php 脚本中输入类型单选 + 文本区域
【发布时间】:2019-03-06 10:08:00
【问题描述】:

我有一个问题,我真的不知道如何解决它,因为我在网上找不到解决方案。 我有一个简单的 html 表单,带有一些单选按钮,可以进行多项选择,这是我的 index.html

        <form action="process.php" method="POST">

         <fieldset>         
    <legend><font color="blue">Select your favorite color:</font></legend>           
 <input type="radio" name="color" value="Blue"/>Blue.<br/>          
 <input type="radio" name="color" value="Red"/>Red<br/>             
 <input type="radio" name="color" value="Green"/>Green<br/>
        </fieldset>

这是我的 process.php

if(isset($_POST['color'])){

    $color = $_POST['color'];

        echo ("Your favorite color is: </br>" .$color);
}

else{

        echo ("You didn't select any color!");

}

现在我想在 html 表单上添加另一个选项,但这必须是 textarea 所以代码应该是这样的:

         <fieldset>         
    <legend><font color="blue">Select your favorite color:</font></legend>           
 <input type="radio" name="color" value="Blue"/>Blue.<br/>          
 <input type="radio" name="color" value="Red"/>Red<br/>             
 <input type="radio" name="color" value="Green"/>Green<br/>
 <input type="textarea" name="color" placerholder="write your favorite color">
        </fieldset>

问题是,如果用户选择单选按钮中的“绿色”选项,php 脚本将看不到它,它会将 php 中的 $color 留空。所以我的输出基本上是: 你最喜欢的颜色是:[空格]。即使我没有选择任何单选按钮并且我的文本区域是空的,我也会得到相同的结果。它给我正确输出的唯一一次是当我在 textarea 中输入一些东西时。 有什么解决办法吗?谢谢指教

【问题讨论】:

  • 为文本区域使用不同的名称...?
  • 正如@misorude 所说:使用不同的名称。然后,使用 if 表示是否没有选择单选按钮查找 textarea 值
  • @LelioFaieta 这听起来是个好主意,我需要看看如何去做(我刚开始学习基本的东西)。谢谢!
  • &lt;input type="textarea" 不是有效的 HTML。 &lt;textarea&gt;&lt;/textarea&gt; 是。而placerholder 应该是placeholder
  • @kerbholz 输入类型它对我有用,占位符我只是在这里做了一个类型:P

标签: php html forms button radio


【解决方案1】:

更改文本区域的名称并获取如下描述。并使用 textarea 你应该使用

 if(isset($_POST['color'])){

    $color = $_POST['color'];
    $description = $_POST['description'];

        echo ("Your favorite color is: </br>" .$color);
}

else{

        echo ("You didn't select any color!");

}

HTML 代码

 <fieldset>         
    <legend><font color="blue">Select your favorite color:</font></legend>           
    <input type="radio" name="color" value="Blue"/>Blue.<br/>          
    <input type="radio" name="color" value="Red"/>Red<br/>             
    <input type="radio" name="color" value="Green"/>Green<br/>
    <textarea name="description" placeholder="write your favorite color"></textarea>
  </fieldset>

【讨论】:

    【解决方案2】:

    我通过在我的 php 代码中使用两个 else if 来修复它:

    <?php
     if(isset($_POST['color'])){
    
        $color = $_POST['color'];
    
            echo ("Your favorite color is: </br>" .$color);
    }
    else if (empty($_POST['description'])) {
    
        echo ("You did't select any color!");
    
    }
    else if (isset($_POST['description'])) {
    
        $description = $_POST['description'];
    
        echo ("Your favorite color is: </br>" .$description);
    
    }
    
    else{
    
            echo ("You didn't select any color!");
    
    }
    ?>
    

    感谢大家的帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      相关资源
      最近更新 更多