我有一个问题,我创建了两个选择框。
从第一个中选择值后,它被传递并用于 db select,第二个是 db 查询的效果,从第二个输入中选择值后,将显示详细信息。
问题是在从第一个选择标记中选择值并将其传递给第二个之后,该值以某种方式被缓存,因此在从第二个选择框中选择值后,我收到与我在第一个选择框中更改值的相同数量的请求。
jQuery 看起来像:
第一个选择框
function select_contract(folder_id, counter)
{
var dataString = 'folder_id='+folder_id+'&counter='+counter;
$.ajax({
type: "GET",
url: $("#url_autosearch").attr('value'),
data: dataString,
datatype: "json",
success: function(event){
var option = $.parseJSON(event);
$("#autocomplete-select-contract-"+counter).show();
$("#autocomplete-select-contract-"+counter).html(option.contract_list);
$("#autocomplete-select-contract-"+counter).change(function(){
var contract_id = $("#invoice-contract-select-"+counter).val();
select_service(contract_id, counter);
});
}
});
}
第二个选择框:
function select_service(contract_id, counter)
{
var dataString = 'contract_id='+contract_id+'&counter='+counter;
$.ajax({
type: "GET",
url: $("#url_autosearch").attr('value'),
data: dataString,
datatype: "json",
success: function(event){
var option = $.parseJSON(event);
$("#autocomplete-select-service-"+counter).show();
$("#autocomplete-select-service-"+counter).html(option.service_list);
$("#autocomplete-select-service-"+counter).change(function(){
var service_id = $("#invoice-service-select-"+counter).val();
add_currency_value(contract_id, service_id, counter);
return false;
});
}
});
}
和详细信息
function add_currency_value(contract_id, service_id, counter)
{
var selected = $("#invoice-service-select-"+counter).find('option:selected');
var cost_id = selected.data('cost');
var dataString = 'contract_id='+contract_id+'&service_id='+service_id+'&counter='+counter+'&cost='+cost_id;
$("#cost-id-"+counter).val(cost_id);
$.ajax({
type: "GET",
url: $("#url_autosearch").attr('value'),
data: dataString,
datatype: "json",
success: function(event){
var option = $.parseJSON(event);
$("#autocomplete-currency-value-"+counter).show();
$("#autocomplete-currency-value-"+counter).html(option.currency_label);
}
});
}