Home >Backend Development >PHP Tutorial >提交复选框表单问题

提交复选框表单问题

WBOY
WBOYOriginal
2016-06-06 20:08:531133browse

下面这个复选框提交到后台,有3个问题弄不清,请大神帮说明一下。问题具体描述如下,用restful风格来说明:

下面是“创建页面(create)”的代码,就是一些复选框和另外一个email的输入框:

<code>{!! Form::open(array('url' => 'foo/bar')) !!}
<fieldset class="form-group">
    <label for="email1">Email</label>
    <input type="email" class="form-control" id="email1" placeholder="">
</fieldset>
<div class="checkbox">
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox1" name="checkbox1" value="1"> 苹果
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox2" name="checkbox2" value="1"> 香蕉
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox3" name="checkbox3" value="1"> 凤梨
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox4" name="checkbox4" value="1"> 车厘子
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox5" name="checkbox5" value="1"> 樱桃
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox6" name="checkbox6" value="1"> 柑橘
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox7" name="checkbox7" value="1"> 葡萄
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox8" name="checkbox8" value="1"> 龙眼
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox9" name="checkbox9" value="1"> 椰子
    </label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
{!! Form::close() !!}</code>

填写的email和被选中的复选框发送到后台,问题如下:
1、这个email和这些复选框是保存在一张数据表上,还是分开用两张数据表比较好呢?因为选择复选框的项是不定的,所以不知道怎么设计数据表。

2、复选框这么多项,还有一个email,控制器中store方法怎么写呢,眉毛胡子一把抓吗?

<code>//不知道怎么写store方法。
   public function store(Request $request)
    {
        $requirement = Requirement::create($request->all());
        return redirect()->action('RecruitmentsController@show', ['id' => $requirement->id]);
    }</code>

数据保存到数据表后,要方便实现以下两点:
1、在“编辑页面(edit)”,要能够还原“创建页面(create)”时选择的项,也就是创建时选中的项处于选中状态,没选中的项处于没选中状态。
2、在“显示页面(show)”,显示选中的项,不显示没选中的项。第3个问题就是,在数据表中应该保存什么呢?比如选择了“苹果”,那就应该显示“苹果”,上面我写的是value="1",需要换成value=“苹果”吗,还是随便都可以,怎么保存比较方便?

请大神帮说一下思路,最好在控制器示意一下代码,谢谢。

回复内容:

下面这个复选框提交到后台,有3个问题弄不清,请大神帮说明一下。问题具体描述如下,用restful风格来说明:

下面是“创建页面(create)”的代码,就是一些复选框和另外一个email的输入框:

<code>{!! Form::open(array('url' => 'foo/bar')) !!}
<fieldset class="form-group">
    <label for="email1">Email</label>
    <input type="email" class="form-control" id="email1" placeholder="">
</fieldset>
<div class="checkbox">
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox1" name="checkbox1" value="1"> 苹果
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox2" name="checkbox2" value="1"> 香蕉
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox3" name="checkbox3" value="1"> 凤梨
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox4" name="checkbox4" value="1"> 车厘子
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox5" name="checkbox5" value="1"> 樱桃
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox6" name="checkbox6" value="1"> 柑橘
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox7" name="checkbox7" value="1"> 葡萄
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox8" name="checkbox8" value="1"> 龙眼
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="checkbox9" name="checkbox9" value="1"> 椰子
    </label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
{!! Form::close() !!}</code>

填写的email和被选中的复选框发送到后台,问题如下:
1、这个email和这些复选框是保存在一张数据表上,还是分开用两张数据表比较好呢?因为选择复选框的项是不定的,所以不知道怎么设计数据表。

2、复选框这么多项,还有一个email,控制器中store方法怎么写呢,眉毛胡子一把抓吗?

<code>//不知道怎么写store方法。
   public function store(Request $request)
    {
        $requirement = Requirement::create($request->all());
        return redirect()->action('RecruitmentsController@show', ['id' => $requirement->id]);
    }</code>

数据保存到数据表后,要方便实现以下两点:
1、在“编辑页面(edit)”,要能够还原“创建页面(create)”时选择的项,也就是创建时选中的项处于选中状态,没选中的项处于没选中状态。
2、在“显示页面(show)”,显示选中的项,不显示没选中的项。第3个问题就是,在数据表中应该保存什么呢?比如选择了“苹果”,那就应该显示“苹果”,上面我写的是value="1",需要换成value=“苹果”吗,还是随便都可以,怎么保存比较方便?

请大神帮说一下思路,最好在控制器示意一下代码,谢谢。

有一种大学做作业的感觉!

提交复选框表单问题

先做一个管理功能把所有水果数据表维护好

1.添加页面把所有水果数据循环让用户选择,value里面放fruit_id,提交表单把email存在form表,N个fruit_id的多条记录存储在form_fruit表,用form_id关联加个事务,避免数据丢了

2.编辑页面的时候把主键对应的email、fruit_id列表数据读出来,然后fruit_id列表和全部水果列表数据循环的时候去比较如果等于的就选中

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn