实际上我正在创建一个依赖的下拉列表但是我的ajax js_base_url没有进入控制器。我不知道有什么问题。表名是system_detail和software_detail。我的控制器名称是SoftwaredetailController.php和SystemdetailController.php
我的ajax代码:
function getEmployee(id){
$.ajax({
type:'POST',
url: JS_BASE_URL + 'systemdetail/get-employee',
data:{'id':id},
// dataType: 'text',
success: function(data) {
var options = '<option value="">Please Select</option>';
if ( data ) {
var json = JSON.parse(data);
for (var i = 0; i < json.length; i++) {
options +='<option value="'+json[i].system_id+'">'+json[i].system_id+'</option>'
}
$('#software_detail-system_id').html(options);
return false;
}
$('#software_detail-system_id').html('');
$('#software_detail-system_id').html(options);
},
});
}
我的控制器代码:
public function actionGetEmployee()
{
echo"<i am here>";die;
$postData = Yii::$app->request->post();
// echo "<pre>";
// print_r($postData['id']]);
// die;
$allSystemDetail = SystemDetail::find()
->where(['user_id' => $postData['id']])
->asArray()
->all();
if ($allSystemDetail){
return json_encode($allSystemDetail);
}else{
return false;
}
}
我的下拉列表列表代码:
<?= $form->field($model, 'user_id')->dropDownList(
ArrayHelper::map(Employee::find()->asArray()->all(),'id','employee_id'),
[
'onchange' => 'getEmployee(this.value)',
'prompt'=>'Please Select',
])->label('Employee Id'); ?>
<?= $form->field($model, 'system_id')->dropDownList(
ArrayHelper::map(SystemDetail::find()->asArray()->all(),'system_id','system_id'),
[ 'prompt' => 'Select System id']); ?>
答案 0 :(得分:0)
你应该在JS代码中使用Url :: to(['controller / action']),如:
function getEmployee(id){
$.ajax({
type:'POST',
url: "<?php echo yii\helpers\Url::to(['systemdetail/get-employee']); //url for ajax call ?>",
data:{'id':id},
// dataType: 'text',
success: function(data) {
var options = '<option value="">Please Select</option>';
if ( data ) {
var json = JSON.parse(data);
for (var i = 0; i < json.length; i++) {
options +='<option value="'+json[i].system_id+'">'+json[i].system_id+'</option>'
}
$('#software_detail-system_id').html(options);
return false;
}
$('#software_detail-system_id').html('');
$('#software_detail-system_id').html(options);
},
});