Ignoring the numerous issues.. not the least of which being the logic flow problems in your save method...
If we focus just on these two snippets:
<select v-model="row.subject" id="subject" name="subject">
<option></option><br>
@foreach($subject_data as $data)
<option value="{{ $data->id }}">{{ $data->subject_code }}</option>
@endforeach
</select>
and
<td><span> @{{ description }} </span></td>
Assuming you had subjects available to Vue, and that was an array of subject objects containing all of the pertinent info about subjects (their id, name, description, etc).. you could do something like this:
<select v-model="row.subject" id="subject" name="subject">
<option value="">- Please Select -</option>
<option v-for="subject in subjects" :value="subject.id">@{{ subject.name }}</option>
</select>
<td><span> @{{ description(row.subject) }} </span></td>
description will then be a method that returns the description for the subject id passed into it.
If you have lodash installed this is dead simple:
methods: {
description: function(subject_id) {
if (!subject_id) {
return 'Please select a subject.';
}
var subject = _.find(this.subjects, {id: subject_id});
return subject.description;
}
}
That should get you heading in the right direction I think.