在laravel中验证选择表单

时间:2017-07-21 09:35:40

标签: php laravel validation

我的联系表格上有这个HTML:

<div class="form-group">
     <label class="col-md-2 control-label" for="type">Type of website?</label>
     <div class="col-md-10 inputGroupContainer">
          <div class="input-group">
               <span class="input-group-addon"><i class="fa fa-file-code-o"></i></span>
               <select class="form-control" id="type">
                  <option>Business</option>
                  <option>Company</option>
                  <option>Personal</option>
                  <option>Online Shopping</option>
                  <option>Other</option>
               </select>
          </div>
     </div>
</div>

如何在电子邮件中验证并传递此字段的数据?

目前我有这个:

<!-- Text input-->
<div class="form-group">
      <label class="col-md-2 control-label">Type</label>
      <div class="col-md-10 inputGroupContainer">
           <div class="input-group">
               <span class="input-group-addon"><i class="fa fa-file-code-o"></i></span>
               <input  name="type" placeholder="eg. Business, Company, Personal, Online Shopping, etc." class="form-control"  type="text">
           </div>
      </div>
</div>

我验证并传递它:

$data = array(
        'type' => $request->type,
      );

但我想要的输入字段是我的第一个样本(选择框),所以我不知道该怎么做!

感谢。

7 个答案:

答案 0 :(得分:6)

你可以这样做:

<div class="form-group">
  <label class="col-md-2 control-label" for="type">Type of website?</label>
  <div class="col-md-10 inputGroupContainer">
    <div class="input-group">
      <span class="input-group-addon"><i class="fa fa-file-code-o"></i></span>
      <select class="form-control" id="type" name="typeSelection">
        <option>--Select type--</option>
        <option>Business</option>
        <option>Company</option>
        <option>Personal</option>
        <option>Online Shopping</option>
        <option>Other</option>
      </select>
    </div>
  </div>
</div>

遵守规则:

$rules = [
    'typeSelection' => 'required|not_in:0'
];

not_in:0以避免提交第一个选择女巫--Select type--:)

要将信息传递给验证,只需使用$request->all(),因为在这种情况下它将使用字段name typeSelection无需创建新数组!

答案 1 :(得分:6)

  

首先将名称提供给Select下拉字段,然后在“最简单方法”中使用名称为select输入字段的验证规则。您提供required

实施例

<select class="form-control" id="type" name="Business_Type">
    <option value="">Select Type</option>
    <option value="Business">Business</option>
    <option value="Company">Company</option>
    <option value="Personal">Personal</option>
    <option value="Online Shopping">Online Shopping</option>
    <option value="Other">Other</option>
</select>

验证规则

// Validation rules somewhere...
$rules = [
    ...
    'Business_Type' => 'required',
    ...
];

答案 2 :(得分:2)

您需要使用required验证您的选择,为此您需要设置选择:

选择加入广告素材:

<select class="form-control" id="type" name="selType">
    <option value="">Select Type</option>
    <option value="Business">Business</option>
    <option value="Company">Company</option>
    <option value="Personal">Personal</option>
    <option value="Online Shopping">Online Shopping</option>
    <option value="Other">Other</option>
</select>

某处的验证规则:

$rules = [
    'selType' => 'required'
];

答案 3 :(得分:1)

Laravel 8 中,我使用了这个,我发现如果您通过检查元素将值更改为其他值 '是的,我知道这听起来很时髦' 仍然可以插入验证器并通过。这是解决方案

选择:

<select class="form-control" id="type" name="Business_Type">
<option value="">Select Type</option>
<option value="Business">Business</option>
<option value="Company">Company</option>
<option value="Personal">Personal</option>
<option value="Online Shopping">Online Shopping</option>
<option value="Other">Other</option></select>

验证器:

$this->validate($request, [
    'selType' => 'required|in:Business,Company,Personal,Online Shopping,Others'
]);

只输入验证器必须通过的值,其他所有值都不会通过

答案 4 :(得分:0)

$rules = [
    'selType' => 'required|in:Business,Company,Personal,Online Shopping,Others'
];

答案 5 :(得分:0)

如果要检查表的列中是否存在所选值,可以像下面的示例一样进行检查

<select class="form-control" id="type" name="Business_Type">
    <option value="">Select Type</option>
    <option value="Business">Business</option>
    <option value="Company">Company</option>
    <option value="Personal">Personal</option>
    <option value="Online Shopping">Online Shopping</option>
    <option value="Other">Other</option>
</select>

以上选择

'Business_Type' => 'required|my_business ,type'

这将确保选定的值存在,例如在type列的my_business表中。 如果选择第一个选项,它将返回错误

The selected type is invalid.


答案 6 :(得分:0)

您应该在每个选项中输入 Value 第一个应该是

<块引用>

value=""

其余的把它们的值放成这样

   <option value="">Select Type</option>
    <option value="Business">Business</option>
    <option value="Company">Company</option>
    <option value="Personal">Personal</option>
    <option value="Online Shopping">Online Shopping</option>
    <option value="Other">Other</option>