我希望你能用这个为我指明正确的方向。
我有以下 JavaScript:
var url = '/admin/list-contacts';
var contacts;
$.ajax({
async: false,
type: 'GET',
url: url,
dataType: 'json',
success : function(data) { contacts = data; }
});
var accountId = $('#account_id option:selected').val();
if(accountId === 'NULL') {
$('.delegates .contacts, .delegates .delegate_status_id, .delegates .event_id, .delegates .price, .opportunities .contacts, .notes .contacts').hide();
} else {
$('.delegates .contacts, .delegates .delegate_status_id, .delegates .event_id, .delegates .price, .opportunities .contacts, .notes .contacts').show();
}
$('#account_id').change(function() {
select = $("<select name='contact_id' id='contact_id'>");
for(var i in contacts) {
if(contacts[i]['account_id'] === $(this).val()) {
select.append('<option value="' + contacts[i]['id'] + '">' + contacts[i]['name'] + '</option>');
} else {
select.html('<option value="NULL">No Contacts</option>');
}
}
var accountId = $('#account_id option:selected').val();
if(accountId === 'NULL') {
$('.delegates .contacts, .delegates .delegate_status_id, .delegates .event_id, .delegates .price, .opportunities .contacts, .notes .contacts').hide();
$('.delegates .contacts .controls, .opportunities .contacts .controls, .notes .contacts .controls').html('');
} else {
$('.delegates .contacts, .delegates .delegate_status_id, .delegates .event_id, .delegates .price, .opportunities .contacts, .notes .contacts').show();
$('.delegates .contacts .controls, .opportunities .contacts .controls, .notes .contacts .controls').html(select);
}
});
基本上,它所做的是使用 Laravel 4 中的代码通过 JSON 提取联系人列表:
public function contacts()
{
return Contact::select('contacts.id', 'contacts.account_id', DB::raw('concat(contacts.first_name," ",contacts.last_name) AS name'))->get();
}
一切都很好,contacts 变量填充了正确的数据,并且我已经在整个过程中在控制台中记录了这个变量的结果,并且当对选择框进行更改时,它包含正确的数据。问题在于 for 循环中的 if 语句。
如果系统中只有 1 个带有联系人的帐户,则它可以正常工作并且所有联系人都已通过。一旦您添加另一个帐户,它就会失败并恢复使用 else 语句中的代码。有趣的是,您删除了 if 语句的 else 部分,它可以完美运行。不过,我需要“无联系人”位,以表明如果帐户没有联系人则没有。
有什么想法吗?
编辑:我应该提到,联系人下拉列表的数量取决于包含系统中帐户的先前下拉列表。JavaScript 检查所选帐户的 ID 并提取正确的联系人。