mercredi 3 mai 2017

Larvel 5.2 + Ajax, Update multiple rows in one form

I'm getting fairly close I feel to getting this working, I'm currently getting a 500 error on save + no other additonal information in the stack trace.

I believe my controller function may not be 100% correct,

This form needs to save multiple rows to the database.

Any help is greatly appreciated. Thank you.

protected function CreateUpdateCompetitorRates(Request $request)

{

    if ($request->ajax()) {
        foreach ($request->id as $id => $i) {

            $competitor_bluestone_rates_mrfs = Competitor_Bluestone_rates::where('id', $id)->first();
            //
            $competitor_bluestone_rates_mrfs->id = $request->id;
            $competitor_bluestone_rates_mrfs->Portfolio = $request->Portfolio[$id];
            $competitor_bluestone_rates_mrfs->Product_Type = $request->Product_Type[$id];
            $competitor_bluestone_rates_mrfs->Doc_Type = $request->Doc_Type[$id];
            $competitor_bluestone_rates_mrfs->Product_Name = $request->Product_Name[$id];
            $competitor_bluestone_rates_mrfs->LVR_Up_To = $request->LVR_Up_To[$id];
            $competitor_bluestone_rates_mrfs->Rate = $request->Rate[$id];
            $competitor_bluestone_rates_mrfs->Mortgage_Risk_Fee = $request->Mortgage_Risk_Fee[$id];


            $competitor_bluestone_rates_mrfs->save();
        }


    }
    return redirect('/');
}

view file

        <form method="POST" action="">
        <input type="hidden" name="_token" value="">
    <table id="worklists" class="table table-striped tablesorter">
        <tbody>
        @foreach($competitor_bluestone_rates_mrfs as $competitor_bluestone_rates_mrf)
            <tr>
                <input type="text" value=""   readonly>
                <input type="text" id="Portfolio" name="Portfolio" data-row="" data-col="Portfolio" value="">
                <input type="text" id="Product_Type" name="Product_Type" data-row="" data-col="Product_Type" value="">
                <input type="text" id="Doc_Type" name="Doc_Type" data-row="" data-col="Doc_Type" value="">
                <input type="text" id="Product_Name" name="Product_Name" data-row="" data-col="Product_Name" value="">
                <input type="text" id="LVR_Up_To" name="LVR_Up_To" data-row="" data-col="LVR_Up_To" value="">
                <input type="text" id="Rate" name="Rate" data-row="" data-col="Rate" value="">
                <input type="text" id="Mortgage_Risk_Fee" name="Mortgage_Risk_Fee" data-row="" data-col="Mortgage_Risk_Fee" value="">

            </tr>
        @endforeach
            </tbody>
        <button type="submit" class="btn btn-danger">Submit MRF</button>
        </table>
    </form>
</div>

AJAX

       var formData = $("input").blur(function () {
        $.ajax({
            type: 'POST',
            url: '/update-competitor-mrfs',
            headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') },
            data: jQuery(this).serialize(),
            dataType: 'json',
            success : function(json){
                console.log(json);
            },
            error : function(xhr, status, json)
            {
                alert(JSON.stringify(json));
            },
        });
    });
   $(document).ready(function () {
       setTimeout(formData, 1000);

   });



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire