چگونه جمع نمره ها را با چک باکس انتخاب شده به دست بیاوریم

1 سال پیش
توسط محمود خسروی آپدیت شد
محمود خسروی ( 8709 تجربه )
1 سال پیش
تخصص : طراح و برنامه نویس

سلام به دوستان لاراولی

من یک جدولی دارم به نام جدول تخلفات و در این جدول فیلدی وجود دارد به نام score یا همین نمره و title یا عنوان.

در ویو من به صورت @foreach و @endforeach و نمره ها به صورت چک باکس و عنوان نمایش می دهد.

سوال من اینجاست که چطور میشه وقتی که چک باکس اگر بلی بود نمره در زیر با هم جمع بشود.

یک چیزی تقریبا مثل این دمو. http://jsfiddle.net/zch۱۱bjo/۱/ این دمو با HTML ساده است. ولی من میخواهم نمره ها از دیتابیس بگیره و جمع شون کنه با آژاکس.

http://uupload.ir/files/kttj_1.jpg

سپاس فراوان از شما که پاسخ می دهید.

vahid Mohammadi ( 30941 تجربه )
1 سال پیش

@oxbir

خوب شما یه بار این رکوردها رو از دیتابیس گرفتید به نظر من مثل مثالی که زدید value هر چک باکس رو با score برابر کنید و طبق مثالی که لینکشو گزاشتید جمع بزنید.

محمود خسروی ( 8709 تجربه )
1 سال پیش
تخصص : طراح و برنامه نویس

@viva.mohammadi

اینو میدونم ولی من یه چیز دیگری می خواهم. من اون value هر چک باکس را به صورت JSON ذخیره کردم. به این صورت:

<table class="table table-bordered">
    @foreach($infractions as $infraction)
        <tr>
            <th>{{ $infraction->title }}</th>
            <td>
                <input type="hidden" id="num{{ $infraction->title }}" name="infractions[{{ $infraction->id }}]" value="0" >
                <input type="checkbox" value="1" onclick="{{ $infraction->score }}" name="infractions[{{ $infraction->id }}]" data-toggle="toggle" data-on="بلی" data-off="خیر" data-onstyle="success" data-offstyle="danger">
            </td>
        </tr>
    @endforeach
</table>

من سوالم اینجاست که وقتی کاربر روی چک باکس کلیک کرد اون onclick چگونه به AJAX بفرستیم.

onclick="{{ $infraction->score }}"

ممنون میشم اگر زودتر جواب دهید.

محمود خسروی ( 8709 تجربه )
1 سال پیش
تخصص : طراح و برنامه نویس

من ساعت ها تلاش کردم اما جمع شون نمی کنه؟ از دوستان اگر می دانند کمک کنند. من جای onclick را عوض کردم:

onclick="scorePlus({{ $infraction->score }})" 

اینم ajax:

function scorePlus (id)
{
    var value = parseInt(document.getElementById('num'+id).value, 10);
    value = isNaN(value) ? 0 : value;
    value++;
    document.getElementById('total').value = value;
}
برای ارسال پاسخ باید وارد سایت شوید