【问题标题】:How to validate checkbuttons & radiobuttons如何验证检查按钮和单选按钮
【发布时间】:2012-12-28 10:34:50
【问题描述】:

我已经准备好验证号码、电子邮件和消息等。

我现在的问题是如何验证无线电/检查 btn。

这是我验证等消息的方式:

// Validates msg

if (!isset($_POST[$field]) || empty($_POST['message'])) {
    $error_msg .= " ";  
    $fieldStatusMessage = 'style="border:1px solid #F00"';
}
else {
    $fieldStatusEmail = '';
}

如果有人可以解释或告诉我会很有帮助。我认为它真的很接近我现在在做什么?

【问题讨论】:

  • 有几种方法,这取决于您的检查和单选按钮的值,因为您可以将它们作为字符串或数字。此外,您的示例仅验证消息不为空……仅此而已。可能包含恶意代码,具体取决于它的用途。
  • 是的,我知道,我只是在检查“如果不为空”验证之后,而不是按钮/收音机 btns 上的消息。

标签: php validation checkbox radio-button


【解决方案1】:

您可以执行以下操作

示例 1

PHP

<?php
  if($_Post[]) {
        if($_POST['list'] == -1)
                echo 'Please select one on the List';
         else {
                ............
         }
}
?>

HTML

<form method="post">
 <select name="list">
         <option value="-1">Select One</option>
         <option value="1">One</option>
         <option value="2">Two</option>
</select>
<input type="submit" name="submit">
</form>

示例 2

HTML

<form name="frm1" action="action.php" method="post">
    Active ? 
    <input type="radio" name="myrdo" value="Y" /> Yes
    <input type="radio" name="myrdo" value="N" /> No
    <br />
    Education:
    <input type="checkbox" name="mychk" value="G" /> Graduate
    <br />
    Country:
    <select name="country">
        <option value="" selected="selected">Select</option>
        <option value="1">USA</option>
        <option value="2">UK</option>
        <option value="3">Canada</option>
    </select>
    <br />
    <input type="submit" name="btnSubmit" value="Submit Form" />
</form>

PHP

if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    $error_msg = array(); 
    if(!isset($_POST['myrdo'])){ 
        $error_msg[] = "No radio buttons were checked."; 
    } 
    if(!isset($_POST['mychk'])){ 
        $error_msg[] = "Graguate was checked"; 
    } 
    if(!isset($_POST['country'])){ 
        $error_msg[] = "No country as selected."; 
    } 

    if(isset($error_msg) && count($error_msg) == 0){ 
        // do some form processing 
    } 
    else{ 
        // redirect to the form again. 
    } 
}  

Read more

【讨论】:

    【解决方案2】:

    对于复选框,如果用户选中它,您将拥有一个等于“on”的 $_POST['checkboxName']。如果用户取消选中它,$_POST['checkboxName'] 将不存在。

    对于单选按钮,您将有一个 $_POST['radioName'] 等于所选值(html 属性值)

    【讨论】:

    • 听起来很有希望,你能解释一下吗?
    【解决方案3】:
    // if not checked consider FALSE
    $checkbox = (empty($_POST['checkbox_name'])) ? FALSE : TRUE;
    
    // if not selected consider FALSE otherwise use value from HTML.
    $radio = (empty($_POST['radio_name'])) ? FALSE : $_POST['radio_name'];
    

    【讨论】:

      猜你喜欢
      • 2011-10-20
      • 2019-10-17
      • 2017-01-18
      • 2011-04-16
      • 2012-10-10
      • 1970-01-01
      • 2016-02-15
      • 2023-04-06
      相关资源
      最近更新 更多