【问题标题】:Identifying if no radio buttons selected with PHP确定是否没有使用 PHP 选择单选按钮
【发布时间】:2014-05-13 08:24:24
【问题描述】:

我正在尝试编写一些代码来确定表单上是否没有选择单选按钮

表单由许多字段组成,但只是在下面的表单中包含了单选按钮

<form action="myPHPPage.php" method="post"> 

Value 1 <input type="radio" name="basic" value="myValue1"> 
Value 2 <input type="radio" name="silver" value="myValue2">
Value 3 <input type="radio" name="gold" value="myValue3">

<input type="submit" name="send" value="Submit">

然后在 myPHPPage.php 页面中,我有类似下面的内容将 POST 值分配给变量:

if(!isset($_POST['basic'])) {
 $var = $_POST['basic'];};
 $someValue = $var;
}

但我想要一些代码,例如:如果没有选择单选按钮 $var = $someValue

【问题讨论】:

  • 您要提示错误消息吗?
  • 我们不需要为一组中的所有收音机提供相同的名称。
  • 电台组内的名称必须相同。您可以根据需要更改值。这样你的代码就可以正常工作了。

标签: php


【解决方案1】:

您可以检查所有 $_POST 元素,而不是比较名称和它们的值。

foreach($_POST as $key=>$value)
{
  echo "$key=$value";
}

PHP: Possible to automatically get all POSTed data?

【讨论】:

    【解决方案2】:
        <form action="myPHPPage.php" method="post"> 
    

    如果按钮是可选的,请制作一组带有名称属性值的单选按钮。

     Value 1 <input type="radio" name="basic" value="myValue1"> 
     Value 2 <input type="radio" name="basic" value="myValue2">
     Value 3 <input type="radio" name="basic" value="myValue3">
    
     <input type="submit" name="send" value="Submit">
    
     Then use a php condition here.
     <?php
    
    
    if(isset($_POST['basic'])) {
     $var = $_POST['basic'];};
     $someValue = $var;
    }
    

    【讨论】:

      【解决方案3】:

      关于单选按钮,您首先要了解的是,如果它们反映相同的属性,它们应该具有相同的名称。 因此,您的表单必须像这样更改。

        <form action="myPHPPage.php" method="post"> 
      
      Value 1 <input type="radio" name="radioName" value="basic"> 
      Value 2 <input type="radio" name="radioName" value="silver">
      Value 3 <input type="radio" name="radioName" value="gold">
      
      <input type="submit" name="send" value="Submit">
      

      然后,如果没有选择单选按钮,您想要分配一个值。 您可以执行以下操作:

      $var="";
      $someValue="abc";
          if(isset($_POST['radionName'])) {
       $var = $_POST['radionName'];// This means one radio button is selected, thus you have a value.
      }
      else{
      $var=$someValue; // No radio button is selected, thus you can assign a default desired value.
      }
      

      【讨论】:

        【解决方案4】:

        试试这个....你应该让所有单选按钮都具有相同的名称

        <form action="myPHPPage.php" method="post"> 
        
            Value 1 <input type="radio" name="basic" value="myValue1"> 
            Value 2 <input type="radio" name="basic" value="myValue2">
            Value 3 <input type="radio" name="basic" value="myValue3">
        
            <input type="submit" name="send" value="Submit">
        
        </form>
        

        这里是您提交后在服务器上的 php 代码

        <?php
            if(isset($_POST['send'])) { //change index to submit button name
        
                 if($_POST['basic'] == ''){ // if no button is selected then
        
                 $var = $someValue;
        
                 }//if ends here
        
                else
                 { //if any of the radio is selected "if you don't want else so remove that"
        
                 $var = $_POST['basic'];
        
                }//else ends here
        
            }//isset ends here
        

        ?>

        【讨论】:

          【解决方案5】:

          如果您使用收音机,则该特定选项的所有 input radio 名称应该相同。

          Value 1 <input type="radio" name="basic" value="basic"> 
          Value 2 <input type="radio" name="basic" value="silver">
          Value 3 <input type="radio" name="basic" value="gold">
          
          <?php
          if(isset($_POST['basic'])) 
          {
            $var = $_POST['basic'];
          }
          ?>
          

          【讨论】:

            【解决方案6】:

            试试这个:

            <?php
            
            // Handle Post
            if (isset($_POST['send']))
            {
                // Get Post Values
                $basic  = isset($_POST['basic'])  ? $_POST['basic']  : '';
                $silver = isset($_POST['silver']) ? $_POST['silver'] : '';
                $gold   = isset($_POST['gold'])   ? $_POST['gold']   : '';
            
                // Atleast one is selected
                if (!empty($basic) || !empty($silver) || !empty($gold))
                {
                    echo 'You have made atleast one selection';
                }
                else
                {
                    echo 'You have not made any selection.';
                }
            }
            
            ?>
            
            <form action="" method="post"> 
            Value 1 <input type="radio" name="basic" value="myValue1"> 
            Value 2 <input type="radio" name="silver" value="myValue2">
            Value 3 <input type="radio" name="gold" value="myValue3">
            <input type="submit" name="send" value="Submit">
            </form>
            

            【讨论】:

            • 如果所有radio's 都不在一个组中,那么在代码中使用radio's 是否有意义?
            【解决方案7】:

            您需要将all-radio buttons 绑定在group

            Value 1 <input type="radio" name="basic" value="basic"> 
            Value 2 <input type="radio" name="basic" value="silver">
            Value 3 <input type="radio" name="basic" value="gold">
            

            然后在 PHP

            <?php
               if(isset($_POST['basic'])) { //remove ! from condition
                  $var = $_POST['basic'];};
                  echo $someValue = $var;
               }
            ?>
            

            【讨论】:

              【解决方案8】:
              <form action="myPHPPage.php" method="post"> 
              
                 Value 1 <input type="radio" name="basic" value="myValue1"> 
                 Value 2 <input type="radio" name="basic" value="myValue2">
                 Value 3 <input type="radio" name="basic" value="myValue3">
              
                 <input type="submit" name="send" value="Submit">
              
                 <?php
              
              
                  if(!isset($_POST['basic'])) {
                   $var = $_POST['basic'];};
                   $someValue = $var;
              
              
                   Please Try this one
              

              【讨论】:

              • 你做错了。 if(!isset 代表未设置 POST。您正在获取其 TRUE 部分中的值,这将引发警告。如果未设置 POST,OP 会要求设置 $var=$somevalue。你错过了它。
              猜你喜欢
              • 1970-01-01
              • 2012-07-10
              • 2016-12-28
              • 2014-03-31
              • 1970-01-01
              • 2013-03-04
              • 2018-01-26
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多