2 回答
TA贡献1946条经验 获得超4个赞
首先你忘记#了$("#more_student").append(html);,如果你有多个student_profile_id,那么你必须把它做成数组name="student_profile_id[]",每个控件都有唯一的id
试试这个
<script>
var students = eval({!! $student !!});
$(document).ready(function(){
$('#btn_add').click(function(){
add_row();
});
});
function add_row(){
var index = $('input[name="student_profile_id[]"]').length+1;
var html = `<div id="student_div_id`+index+`" class="form-group">
<label class="form-control-label" for="student_id">{{ __("Student") }}</label>'
<select type="text" name="student_profile_id[]" id="student_id`+index+`" class="form-control">
<option disabled selected> -- select an option -- </option>`;
$.each(students,function(ind,el)){
html+=`<option value="`+el.id+`"> `+el.student_name+`</option>`;
});
html+=`</select>
</div>`;
$("#more_student").append(html);
}
</script>
TA贡献1875条经验 获得超5个赞
您试图在 Javascript 中渲染后注入 Blade 模板,这是不可能的。html您应该在函数之外生成 var add_row,然后在单击按钮时将其插入:
var html = '<div id ="student_id" class="form-group">' +
'<label class="form-control-label" for="student_id">{{ __("Student") }}</label>' +
'<select type="text" name="student_profile_id" id="student_id" class="form-control">' +
'<option disabled selected> -- select an option -- </option>'
@if($student)
@foreach($student as $data)
+'<option value="{{$data->id}}"> {{$data->student_name}}</option>'
@endforeach
@endif
+'</select>' +
'</div>';
function add_row() {
id++;
$("#more_student").append(html);
}
- 2 回答
- 0 关注
- 131 浏览
添加回答
举报