我有一个名为employee_name
的字段,根据此字段值,我想自动填充另一个字段employee_id
。我搜索了,我发现this答案,并尝试在我的表单上实现这一点,但我得到Error in ajax request
。在我的表格jQuery代码是yii2根据另一个字段自动填充相关字段
$('#emp').focusout(function() {
empName = this.value;
if (empName != '' || empName != null) {
$('#depcustomer-employee_name').val(empName);
}
$.ajax({
url: '".yii\helpers\Url::toRoute("deposit/employeeid")."',
dataType: 'json',
method: 'GET',
data: {name: $(this).val()},
success: function (data, textStatus, jqXHR) {
$('#depcustomer-employee_id').val(data.id);
},
beforeSend: function (xhr) {
alert('loading!');
},
error: function (jqXHR, textStatus, errorThrown) {
console.log('An error occured!');
alert('Error in ajax request');
}
});
});
我的控制器名称为Deposit
和我的控制器代码是
public function actionEmployeeid($name){
$model= app\modules\settings\models\DepEmployee::findOne(['employee_name'=>$name]);
return \yii\helpers\Json::encode([
'id'=>$model->employee_id
]);
可能是什么原因可能是我的Ajax代码是不工作?
我的表格很大。这里的员工字段项的一部分
<div class="row">
<div class="col-md-6">
<?= $form->field($model, 'employee_id')->textInput(['maxlength' => true]) ?>
</div>
<div class="col-md-6">
<label for='emp'>Employee Name</label>
<?= Html::activeHiddenInput($model, 'employee_name')?>
<?php
echo AutoComplete::widget([
'name' => 'employee_name',
'id' => 'emp',
'clientOptions' => [
'source' => $dataEmp,
'autoFill'=>true,
'minLength'=>'2',
'select' => new JsExpression("function(event, ui) {
$('#depcustomer-name').val(ui.item.id);
}")
],
]);
?>
</div>
</div>
你怎么能指望jQuery来知道这一点:'警予\佣工\地址:: toRoute( “存款/雇员”)' ?请发布您的表单以获得更多帮助。 – stfsngue
@stfsngue所以,我应该用像'http://localhost/testingDeposit/backend/web/index.php?r = deposit%2Fdeposit%2Femployeeid'这样的绝对网址来代替它 – gojiraki
试试这个答案。 – stfsngue