使用PHP验证多选

时间:2017-02-21 18:04:38

标签: php html validation multi-select bootstrap-multiselect

我的代码有多个选择,我需要做的是在用户点击提交按钮时进行验证而不选择任何给定的列表。 这是示例代码:

的index.php

<?php
IF(isset($_POST['Rtype'])){
$RetrieveType = $_POST['Rtype'];
    IF($RetrieveType == 'date_range'){
        $start_date = new DateTime($_POST['start_date']);
        $sd = date_format($start_date,'Y-m-d');
        $p_week=array();
        $m_month=01;
        $end_date = new DateTime($_POST['end_date']);
        $end_date-> add(new DateInterval('P1D'));
        $ed =date_format($end_date,'Y-m-d');
}
    ELSEIF($RetrieveType == 'weekly'){
        $p_week = $_POST['week'];
        $m_week = implode(',',$p_week);
        $m_month =$_POST['month_m'];
        $m_year =$_POST['year_m'];
        $p_lob = $_POST['lob'];
        $sc_lob=implode(',',$p_lob);
} ELSE
{
  $RetrieveType = 'date_range';
        $sd = date('Y-m-01');
        $start_date = date('Y-m-01');
        $ed = date('Y-m-d');
        $end_date = date('Y-m-d');
        $m_month=date ('m');
        $p_week=array();
        $m_year= date ('Y');
        $sc_lob='';
}
?>
<html>
<head>
<head>
<body>
 <form action="index.php" method="POST" class="form-inline">
   <label for="sel1">Week:</label>
   <select data-placeholder="<?php echo (isset($_POST['week']) ? "Week/s Currently Selected: ".implode(",",$_POST['week']) : "Select Week"); ?>" 
                        class="chosen-select" multiple tabindex="4" style="width:350px;" name= "week[]">   
                        <option value="1" id="empty">Week 1</option>
                        <option value="2" id="empty">Week 2</option>
                        <option value="3" id="empty">Week 3</option>
                        <option value="4" id="empty">Week 4</option>
                        <option value="5" id="empty">Week 5</option>
                        </select>
    <label for="sel1">LOB:</label>
    <select data-placeholder="<?php echo (isset($_POST['lob']) ? "LOB/s Currently Selected: ".implode(",",$_POST['lob']) : "Select LOB"); ?>" 
                        class="chosen-select" multiple tabindex="4" style="width:350px;" name= "lob[]"> 
                        <?php
                            $lob = array();
                            $q = "SELECT distinct LOB from roster where EmployStatus='active' and SDLead <> '' group by LOB";
                                    $params = array();
                                    $query = sqlsrv_query($conn, $q); 

                                    while($rowsss= sqlsrv_fetch_array($query)) {
                                    $lob = $rowsss['LOB'];
                                        echo "<option value='".$lob."'>".$lob."</option>";
                                    }
                            for ($i = 0; $i <= count($lob) - 1; $i++) {

                                IF($sc_lob == $lob[$i])
                                {$isSelected = 'selected';}
                                elseif(1==1)
                                {$isSelected='';}
                                echo "<option ".$isSelected." value='".$lob[$i]."'>".$lob[$i]."</option>";                      }

                            ?>
                   <input type="hidden" name="Rtype" value="weekly">
                   <input class="btn btn-primary" type="submit" />
   </form>

我想要实现的是当用户在“周”列表或“LOB”列表中单击提交按钮而不选择任何按钮时,会出现一条错误消息,指出“此字段是必需的,请至少选择一个。 ”。实际上我之前已经这样做了,当时我只是使用了一个复选框。我将代码放在标签后面:

示例代码:

<?php
                            if(isset($_GET['err']))
                            {
                                $err = $_GET['err'];
                                if($err == 1)
                                {
                                    echo "<span class='text-danger'>* This field is required, select at least one.</span>";
                                }
                                else
                                {
                                    echo "";
                                }
                            }
                            else
                            {
                                echo "";
                            }
?>

1 个答案:

答案 0 :(得分:0)

试试这个

if(isset($_POST['submit']){
    errors = 0;
    if($_POST['nameOfSelect'] == ""){
       errors++;
    }

  if(errors == 0){
     return true;
  }else{
     return false;
}