2017-04-04 7 views
0

現在このエラーが発生しています。jqueryでnullを許可するオートコンプリート

キャッチされない例外TypeError:ヌルのプロパティを読み取ることができません「ラベル」

return $.extend({}, item, { 
      label: item.label || item.value, 
      value: item.value || item.label 
     }); 

このコード行は、jqueryの-UIで私にエラーを与えるものです。

私は、エラーを引き起こしているものがnull値であることを知っています。 null値が結果の1つとして返されるのを防止することはできますか?

$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);   
+0

あなたは '(item.label === null)をチェックすることで条件を設定できますか?割り当て前に "null":item.labelを返します。 – Roljhon

+0

'item'とは何ですか?それは 'ヌル'のようだ。 – Qirel

+0

私は正確に知っていることはありません。私はこのjquery autcompleteライブラリを使用しています。私のプロジェクトフォルダにないjquery-ui.jsから私にエラーがあります。 –

答えて

0

を同じように、あなたのクエリに空の文字列にNULL値を "変換" updated:ループを変更する必要もあります。

$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); 
+0

私はこの値を返さないようにしました。 –

+0

また、コードを '$ data'配列のレコードを追加するように変更する必要があります。更新された答えをご覧ください。 – Alessandro

+0

サーバの応答が遅いかどうかを確認するために、制限を500に減らそうとしました。結果はまだ得られません。 –

0

Ternary operatorを使用してみてください:ここで

は、mysqlのクエリです

:私はそれは良いことだと思う

return $.extend({}, item, { 
      label: item.label ? item.label : item.value, 
      value: item.value ? item.value : item.label 
     }); 
+0

jquery-ui.jsでこれを行う必要がありますか? –

関連する問題