如何从选择选项中获取值而不选择Laravel中的选项

时间:2017-11-10 09:56:53

标签: php laravel

我在将数据存储到数据库时遇到问题,因为我只知道如果选择了该选项,选项值将存储到数据库中,但是如果我想存储未选择的所有选项?

这是我的HTML代码

<select multiple id="AllowedCategories" name="allowedPostCategories[]" style="width: 500px; height: 200px; float: left"> </select>

我有一个按钮,如果我点击按钮它会显示一个模态。如果我在模态中选择数据,它将显示选项,因此我的html代码将更改

<select multiple id="AllowedCategories" name="allowedPostCategories[]" style="width: 500px; height: 200px; float: left"> 
   <option value="1">Hello</option> 
   <option value="2">World</option> 
</select>

所以,问题是存储选项值,我试图做

return $request->allowedPostCategories;

在我的代码中。但是,它返回null

现在,我不知道如何存储数据。我试过用

return Input::get('allowedPostCategories');

但是,我仍然有null

3 个答案:

答案 0 :(得分:0)

如果您允许将类别作为数组,

然后使用array_diff获取未选择的值。

对于。例如。
$ all_categories = $ AllowedCategories;
$ selected_category =(输入:: has('allowedPostCategories'))? Input :: get('allowedPostCategories'):[];
$ unselected_Array = array_diff($ all_categories,$ selected_category);

希望这对你有所帮助。

答案 1 :(得分:0)

答案是:

在提交表单时将select选项属性设置为true,因为如果选择了该选项,则选项值只能存储到数据库中

答案 2 :(得分:0)

按照: -

enter code here
<select multiple id="AllowedCategories" name="allowedPostCategories[]" 
style="width: 500px; height: 200px; float: left"> 
   <option value="1">Hello</option> 
   <option value="2">World</option> 
</select>

我认为你也可以不用jquery。 首先,您知道allowedPostCategories的所有选项值。现在,当您在特定控制器功能中发布数据时。 你可以做这个控制器功能

public function  function_name(Request $request){
if($request->isMethod('post')){
    $data = $request->all();
    $allowedcategories = $data['allowedPostCategories'];
    $allcategories = array('1,','2'); // or you can fetch from Database
    $unallowedcategories= array();
    foreach($allcategories as $category){
        if(in_array($category,$allowedcategories)){
            // don't save 
        }else{
            $unallowedcategories[] = $category; //now unallowedcategories you can save in your db
        }
    }
}   
}

希望它有所帮助!