Может кто-нибудь помочь мне, как сохранить несколько данных флажок в laravel? - PullRequest
0 голосов
/ 01 марта 2020

У меня мало информации по созданию системы laravel. Мой вопрос заключается в том, как сохранить значение флажка Checked в моей базе данных. Я не могу понять это.

<div class="controls">
    <td>
        <label class="checkbox inline">
            <input type="checkbox" name="illness" value="cbx_aids">
            Aids
        </label>
    </td>
    <td>
        <label class="checkbox inline">
            <input type="checkbox" name="illness" value="cbx_anemia">
            Anemia
        </label>
    </td>
    <td>
        <label class="checkbox inline">
            <input type="checkbox" name="illness" value="cbx_arthritis">
            Arthritis
        </label>
    </td>
    <td>
        <label class="checkbox inline">
            <input type="checkbox" name="illness" value="cbx_Artificial">
            Artificial Joints
        </label>
    </td>

Ответы [ 4 ]

3 голосов
/ 02 марта 2020

Надеюсь, что это решение поможет ..

Просто добавьте name = illness[] вместо name = illness, чтобы получить все выбранное значение флажка.

<div class="controls">
    <td>
        <label class="checkbox inline">
            <input type="checkbox" name="illness[]" value="cbx_aids">
            Aids
        </label>
    </td>
    <td>
        <label class="checkbox inline">
            <input type="checkbox" name="illness[]" value="cbx_anemia">
            Anemia
        </label>
    </td>
    <td>
        <label class="checkbox inline">
            <input type="checkbox" name="illness[]" value="cbx_arthritis">
            Arthritis
        </label>
    </td>
    <td>
        <label class="checkbox inline">
            <input type="checkbox" name="illness[]" value="cbx_Artificial">
            Artificial Joints
        </label>
    </td>
</div>
public function illNess(Request $request)
    {
        $illness_arr = $request->illness; // returns an array
        if(count($illness_arr) > 0) {
            $new_record = new Illness();
            $new_record->column_name = json_encode($new_record); // pushes as an array into the column of the table
            $new_record->save(); // saves the record into the table
        }
    }
0 голосов
/ 03 марта 2020

Я обычно делаю логический флажок, добавляя jQuery, например:

<td>
    <label class="checkbox inline">
        <input id="checkboxId" type="checkbox" name="illness[]" >
        Aids
    </label>
</td>

<script>
    $('#checkboxId').on('change', function(){
        this.value = this.checked ? 1 : 0;
        //alert(this.value);
    }).change();
</script>

Тогда ваш запрос получит проверенный ввод как значение 1, а не как 0, так что вы можете легко отфильтровать их.

0 голосов
/ 02 марта 2020

Возможно, я неверно истолковал ваш вопрос, но, насколько я понимаю, вам нужны значения всех отмеченных флажков. Для этого вы должны присвоить значение атрибута name следующим образом всем флажкам одной и той же группы:

<input type="checkbox" name="illness[]" value="cbx_aids">

болезнь []

И в контроллере вы можете l oop через все значения:

foreach ($request['illness'] as $value) { ... }
0 голосов
/ 01 марта 2020

у ваших входов нет атрибута 'name'

, например:

<label class="checkbox inline">
   <input type="checkbox" name="cbx_aids" value="1">
     Aids
</label>

А в вашем контроллере:

if($request->has('cbx_aids')){
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...