微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未定义的偏移量:从动态形式存储数据时为 1

如何解决未定义的偏移量:从动态形式存储数据时为 1

我正在尝试使用javascript使用动态表单将数据保存到数据库中,我遵循了互联网上的几种方法,但是当我尝试将数据发送到数据库时,出现错误 undefined offset: 1 in the following行:

'question' => $question[$i],(On controller)

有人可以帮我吗?

这里是 form.blade.PHP

  <form action="{{ url('/rating/post-form') }}" method="POST">
                                        @csrf
                                        <div class=" col-sm-12 nopadding form-group">
                                            <label for="survei_tag">Kategori</label>
                                            <input type="text" class="form-control" id="survei_tag" name="survei_tag">
                                        </div>
                                        <div class="col-sm-12 nopadding form-group">
                                            <label for="judul">Judul</label>
                                            <input type="text" class="form-control" id="judul" name="judul">
                                        </div>
                                        <div id="education_fields"></div>
                                        <div class="col-sm-12 nopadding">
                                            <div class="form-group">
                                                <label for="pertanyaan">Pertanyaan</label>
                                                <input type="text" class="form-control" id="question" name="question[]"
                                                    placeholder="Tambahkan Pertanyaan">
                                            </div>
                                        </div>
    
                                        <div class="col-sm-3 nopadding">
                                            <div class="form-group">
                                                <input type="text" class="form-control" id="opsi_1" name="opsi_1[]"
                                                    placeholder="Opsi 1">
                                            </div>
                                        </div>
                                        <div class="col-sm-3 nopadding">
                                            <div class="form-group">
                                                <input type="text" class="form-control" id="opsi_2" name="opsi_2[]"
                                                    placeholder="Opsi 2">
                                            </div>
                                        </div>
                                        <div class="col-sm-3 nopadding">
                                            <div class="form-group">
                                                <input type="text" class="form-control" id="opsi_3" name="opsi_3[]"
                                                    placeholder="Opsi 3">
                                            </div>
                                        </div>
    
                                        <div class="col-sm-3 nopadding">
                                            <div class="form-group">
                                                <div class="input-group">
                                                    <div class="form-group">
                                                        <input type="text" class="form-control" id="opsi_4" name="opsi_4[]"
                                                            placeholder="Opsi 4">
                                                    </div>
                                                    <div class="input-group-btn">
                                                        <button class="btn btn-success" type="button"
                                                            onclick="education_fields();">
                                                            <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
                                                        </button>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="clear"></div>
                                        <button type="submit" class="btn btn-primary pull-right">
                                            Simpan
                                        </button>
                                    </form>

这里是 main.js

    var room = 1;
    
    function education_fields() {
    
        room++;
        var objTo = document.getElementById('education_fields')
        var divtest = document.createElement("div");
        divtest.setAttribute("class","form-group removeclass" + room);
        var rdiv = 'removeclass' + room;
        divtest.innerHTML = `
                <div class="col-sm-12 nopadding">
                <div class="form-group">
                    <label for="question">Pertanyaan</label>
                    <input type="text" class="form-control" id="question" name="question[]"
                        placeholder="Tambahkan Pertanyaan">
                </div>
            </div>
    
            <div class="col-sm-3 nopadding">
                <div class="form-group">
                    <input type="text" class="form-control" id="opsi_1" name="opsi_1[]" 
                        placeholder="Opsi 1">
                </div>
            </div>
            <div class="col-sm-3 nopadding">
                <div class="form-group">
                    <input type="text" class="form-control" id="opsi_2" name="opsi_2[]" 
                        placeholder="Opsi 2">
                </div>
            </div>
            <div class="col-sm-3 nopadding">
                <div class="form-group">
                    <input type="text" class="form-control" id="opsi_3" name="opsi_3[]" 
                        placeholder="Opsi 3">
                </div>
            </div>
                        <div class="col-sm-3 nopadding"> 
                            <div class="form-group"> 
                                <div class="input-group"> 
                                <div class="form-group">
                                <input type="text" class="form-control" id="opsi_4" name="opsi_4[]" 
                                    placeholder="Opsi 4">
                            </div>
                                    <div class="input-group-btn"> 
                                        <button class="btn btn-danger" type="button" onclick="remove_education_fields(' + room + ');"> 
                                            <span class="glyphicon glyphicon-minus" aria-hidden="true"></span> 
                                        </button>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="clear">
                        </div>
                `;
    
    
        objTo.appendChild(divtest);
    }
    
    function remove_education_fields(rid) {
        $

('.removeclass' + rid).remove();
}

这是模型:

<?PHP

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Traits\Uuids;

class questions extends Model
{
    use HasFactory,Uuids;
    protected $table = 'survei_questions';
    public $timestamps = true;
    protected $fillable = [
        'survei_tag','question_number','question','sq_instansi_id','sq_user_id','judul','opsi_1','opsi_2','opsi_3','opsi_4'
    ];
}

这里是控制器:

public function storeQuestions(Request $request){
         $request->validate([
             'survei_tag' =>'required|string|max:255','judul' => 'required|string','question' => 'required|string','opsi_1' => 'required|string','opsi_2' => 'required|string','opsi_3' => 'required|string','opsi_4' => 'required|string',]);

        $survei_tag = $request->survei_tag;
        $judul = $request->judul;
        $question = $request->question;
        $opsi_1 = $request->opsi_1;
        $opsi_2 = $request->opsi_2;
        $opsi_3 = $request->opsi_3;
        $opsi_4 = $request->opsi_4;

        for ($i = 1; $i <= count($question); $i++) {
            $saveData = [
                'survei_tag'      => $survei_tag,'question_number' => $i,'question'        => $question[$i],'sq_instansi_id'  => Auth::user()->instansiID,'sq_user_id'      => Auth::id(),'judul'           => $judul,'opsi_1'          => $opsi_1[$i],'opsi_2'          => $opsi_2[$i],'opsi_3'          => $opsi_3[$i],'opsi_4'          => $opsi_4[$i]
            ];
            DB::table('survei_questions')->insert($saveData);
        }
        return Redirect::to('/rating/create-form')->with('success','Data berhasil disimpan');
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。