我在将数据存储到数据库时遇到问题,因为我只知道如果选择了该选项,选项值将存储到数据库中,但是如果我想存储未选择的所有选项?
这是我的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
答案 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
}
}
}
}
希望它有所帮助!