Javascript 在jquery ui自动完成中允许null
我目前收到这个错误 未捕获的TypeError:无法读取null的属性“label” 这行代码是jQueryUI中出现错误的代码 我知道导致错误的是空值。 我如何允许它或者如果不允许的话,如何防止null值作为结果之一返回 下面是mysql查询:Javascript 在jquery ui自动完成中允许null,javascript,jquery,mysql,jquery-ui,Javascript,Jquery,Mysql,Jquery Ui,我目前收到这个错误 未捕获的TypeError:无法读取null的属性“label” 这行代码是jQueryUI中出现错误的代码 我知道导致错误的是空值。 我如何允许它或者如果不允许的话,如何防止null值作为结果之一返回 下面是mysql查询: $get_company = "SELECT DISTINCT companies.company,companies.company_id FROM companies INNER JOIN target_detai
$get_company = "SELECT DISTINCT companies.company,companies.company_id
FROM companies
INNER JOIN target_details
ON companies.company_id = target_details.company_id
WHERE companies.company LIKE \"%$company%\"
LIMIT 1500 OFFSET 10
";
if($run_company = $conn->query($get_company)){
while($row = $run_company->fetch_assoc()){
$data[] = $row['company'].$row['company_id'];
}
echo json_encode($data);
尝试使用:
我认为最好在查询中将空值“转换”为空字符串,如:
更新:您还需要更改循环
$get_company = "SELECT DISTINCT NVL(companies.company, ''), NVL(companies.company_id, 0)
FROM companies
INNER JOIN target_details
ON companies.company_id = target_details.company_id
WHERE companies.company LIKE \"%$company%\"
LIMIT 1500 OFFSET 10
";
if($run_company = $conn->query($get_company)){
while($row = $run_company->fetch_assoc()){
$data_row["label"] = $row['company'].$row['company'];
$data_row["value"] = $row['company'].$row['company_id'];
array_push($data, $data_row);
}
echo json_encode($data);
您可以通过选中
(item.label==null)来设置条件?“空”:项。分配前标记。项的确切含义是什么?这似乎是null
。我不太清楚。我只是在使用这个jquery-autcomplete库。它给我提供了jquery-ui.js中的错误,而jquery-ui.js在我的项目文件夹中不存在。如何生成项
?您从何处获得它?@Qirel每次触发jquery自动完成功能。我是否应该在jquery ui.js中执行此操作?您还必须将代码更改为在$data
数组中添加记录,请参阅我的更新答案,请。尝试将限制降低到500以验证这是否只是一个缓慢的服务器响应。我仍然没有得到结果。您的json应该包含label/value
属性,我再次更新了我的代码。可能没有必要使用NVL
。我应该删除NVL吗?是的,它永远不能为空
return $.extend( {}, item, {
label: item.label ? item.label : item.value,
value: item.value ? item.value : item.label
} );
$get_company = "SELECT DISTINCT NVL(companies.company, ''), NVL(companies.company_id, 0)
FROM companies
INNER JOIN target_details
ON companies.company_id = target_details.company_id
WHERE companies.company LIKE \"%$company%\"
LIMIT 1500 OFFSET 10
";
if($run_company = $conn->query($get_company)){
while($row = $run_company->fetch_assoc()){
$data_row["label"] = $row['company'].$row['company'];
$data_row["value"] = $row['company'].$row['company_id'];
array_push($data, $data_row);
}
echo json_encode($data);