我使用laravel背包,我有点卡住现在:插入选中复选框
- >我想从表中加载的基础上,一些复选框之前的下拉结果。
喜欢说我有一个名为exercise_type
的字段,它是一个下拉列表,下拉列表中的所有选项都存储在一个表格中,每个exercise_type
有10个与其相关的练习。
这里value
表是exercise_type
并且每个value
有10倍以上的值。
这里是我如何在Crudcontroller中添加这个exercise_type
字段。
$this->crud->addField([ // select_from_array
'name' => 'exercise1_type',
'label' => "Exercise 1",
'type' => 'select2',
'entity' => 'Exercise_group',
'attribute' => 'value',
'model' => 'App\Models\Exercise_group',
//'allows_null' => false,
'attributes' => [
'id' => 'exercise',
'OnChange' => 'getexercise()',
]
// 'allows_multiple' => true, // OPTIONAL; needs you to cast this to array in your model;
], 'update/create/both');
我能够从表中加载值直到这里。
然后我overrided创建视图的视图,并将此带来的复选框在阿贾克斯成功的功能。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
function getexercise(){
var exercise = $('#exercise').val();
alert(exercise);
$.ajax({
url : "../../getexercise",
type : "POST",
data : { id : exercise },
success: function(response){
// what to put here to bring checkboxes with the name of exercises
as in table
}
});
};
这里是我的路线:
Route::post('/getexercise','[email protected]');
这里是我的BlahController.php
public function getexercise(Request $request){
$id = $_POST['id'];
$exercises = Exercise_group::where('id', $id)->first();
$exercise_id = $exercises->id;
$exercise_1 = $exercises->exercise1;
$exercise_2 = $exercises->exercise2;
$exercise_3 = $exercises->exercise3;
$exercise_4 = $exercises->exercise4;
$exercise_5 = $exercises->exercise5;
$exercise_6 = $exercises->exercise6;
$exercise_7 = $exercises->exercise7;
$exercise_8 = $exercises->exercise8;
$exercise_9 = $exercises->exercise9;
$exercise_10 = $exercises->exercise10;
return response()->json([
'exercise_id' => $exercise_id,
'exercise1' => $exercise_1,
'exercise2' => $exercise_2,
'exercise3' => $exercise_3,
'exercise4' => $exercise_4,
'exercise5' => $exercise_5,
'exercise6' => $exercise_6,
'exercise7' => $exercise_7,
'exercise8' => $exercise_8,
'exercise9' => $exercise_9,
'exercise10' => $exercise_10,
//'state' => 'CA'
]);
}
我不能够在阿贾克斯成功的一切功能添加复选框工作得很好。我尝试了这些链接,但他们没有工作这样:
编辑::
现在复选框都这样工作:
$.each(response, function (key, value) {
var li = $('<li><input type="checkbox" name="' + key + '" id="' + key + '"/>' +
'<label for="' + key + '"></label></li>');
li.find('label').text(value);
$('#wkslist').append(li);
console.log(value);
$('#exercise_detail').val(value);
});
但他们没有以一种很好的方式显示,所以如果我想添加这些复选框值在背包laravel另一个下拉作为我试图例子,但不工作:
$('#exercise_detail').val(value);
$this->crud->addField([ // Select2Multiple = n-n relationship (with pivot table)
'name' => "exercise1_type_detail",
'label' => "Exercise 1 : Detail",
'type' => 'select2_multiple',
'attributes' => [
'id' => 'exercise_detail',
//'OnChange' => 'getexercisedetail()',
],
], 'update/create/both');
我真的不明白你想说什么..你能更简单地理解或详细说明你的问题,请详细一点。 –
@FaisalMehmoodAwan在背包laravel我已经重写了创建视图,并添加了ajax调用成功的地方,我想根据所选择的练习类型调用复选框查看表格和链接。我不能添加复选框 –