我在Web应用程序中具有以下从属下拉列表。这用于将项目保存在POS系统中。项目类别取决于所选公司。我正在根据公司列表的更改事件填充类别列表。创建项目时可以,因为类别是根据所选公司填充的。
<select name="company" id="company" class="form-control" required="required">
<option value="">- Select Company -</option>
<?php
$datavalues = new dataValues();
if(isset($user_company[0]['id'])) $datavalues->id = $user_company[0]['id'];
$datavalues->status=1;
$datavalues->order="name ASC";
$data = $company_class->get_companies($datavalues);
if(isset($data['result']) && $data['result']==true){
foreach($data['result'] as $company){
echo '<option value="'.$company['id'].'">'.$company['name'].'</option>';
}
}
?>
</select>
<select name="category" id="category" class="form-control" required="required">
<option value="">- Select Category -</option>
</select>
这是用html填充类别的ajax查询
$('#company').change(function(){
var company_id = $('#company').val();
if(company_id.length>0 && company_id!='' && company_id!=null){
// Get Categories
$.ajax({
url : "ajax/categories/get_select_categories.php",
cache: false,
type: 'POST',
data: { 'company_id':company_id },
success : function(data) {
$('#addItem #category').html(data);
},
error: function(data) {
console.log("Failed to get category list for select ! " + data);
}
});
}
});
现在,当我要编辑提交的记录时,我会将保存的数据传递回html表单并设置选定的值。下面是对此的ajax查询。
function editItem(id) {
$.ajax({
url : "ajax/items/edit_item.php",
cache: false,
data: {'id':id},
type: 'POST',
success : function(data) {
var arr = data.split("|");
if(arr[0]=="success") {
$('#addItem #edit_id').val(id);
$('#addItem #company').val(arr[1]).change();
var category = arr[5];
// Get Categories
$.ajax({
url : "ajax/categories/get_select_categories.php",
cache: false,
type: 'POST',
data: { 'company_id':company_id },
success : function(data) {
$('#addItem #category').html(data);
$('#addItem #category').val(category).change();
},
error: function(data) {
console.log("Failed to get category list for select ! " + data);
}
});
}
else {
$('#errorMessage').html(arr[0]);
$('#errorModal').modal();
}
},
error: function(data) {
$('#errorMessage').html("Internal problem detected, Please try again later !");
$('#errorModal').modal();
}
});
}
问题是,当我为公司设置值时,它会在公司列表的更改事件中触发功能。因此,然后根据公司列表的设置值对类别进行加载。因此,我无法设置类别列表的保存值。 (我不知道一种检测类别列表填充时间的结束时间的方法,如果我知道,可以在此之后设置所选类别)
这容易吗?还是我做错了什么?