新規投稿
フォローする

2つのフィールドを検索窓1つで検索したい

いつもお世話になっております。

一覧画面に検索窓を作り、会社名(フィールドコード:company)で検索できるようにしたのですが、カナ(フィールドコード:kana)で入力した場合でも検索するようにすることはできるでしょうか?

調べていると、検索窓が2つで作成することはできましたが、1つのまま実装できればと思っております。

また、テキストボックスとボタンにスタイルシートを適用したいのですが、どこにクラス名を記入したらいいかわからないので教えていただけると幸いです。(51-modern-default.cssは同梱できています)

どうぞよろしくお願い致します。

 

 

const FIELD_CODE = 'company';

//レコード一覧表示のイベントハンドラー
(function () {
'use strict';

kintone.events.on("app.record.index.show", function (event) {

//GET引数に格納された直前の検索キーワードを取得して再表示
var result = {};
//クエリから、URL固定部分(?query=)を無視して取り出す
var query = window.location.search.substring(7);
//フィールドコード名と検索キーワードに分割する
for(var i = 0;i < query.length;i++){
var element = query[i].split('like');
var param_field_code = encodeURIComponent(element[0]);
var param_search_word = encodeURIComponent(element[1]);

//空白スペースを取り除いて、配列に格納
result[param_field_code.replace(/^\s+|\s+$/g, "")] = param_search_word.replace(/^[\s|\"]+|[\s|\"]+$/g, "");
}

//検索キーワード
var search_word = document.createElement('input');
search_word.type = 'text';

//検索ボタン
var search_button = document.createElement('input');
search_button.type = 'submit';
search_button.value = '検索!';
search_button.onclick = function () {
keyword_search();
};

//フォーカス
search_button.addEventListener('focusin', (event) => {
event.target.style.background = '#e0ffff';
});

search_button.addEventListener('focusout', (event) => {
event.target.style.background = '';
});

//キーワード検索の関数
function keyword_search(){
var keyword = search_word.value;
var str_query = '?query='+ FIELD_CODE +' like "' + keyword;

if(keyword == ""){
str_query = "";
}else if(keyword != ""){
str_query = '?query='+ FIELD_CODE +' like "' + keyword + '"';
}

//検索結果のURLへ
document.location = location.origin + location.pathname + str_query
}

//重複を避けるため要素をあらかじめクリアしておく
var node_space = kintone.app.getHeaderMenuSpaceElement()
for (var i =node_space.childNodes.length-1; i>=0; i--) {
node_space.removeChild(node_space.childNodes[i]);
}
var label = document.createElement('label');
label.appendChild(document.createTextNode('レコード内検索'));
label.appendChild(document.createTextNode(' '));
label.appendChild(search_word);
label.appendChild(document.createTextNode(' '));
label.appendChild(search_button);
kintone.app.getHeaderMenuSpaceElement().appendChild(label);

return event;
});
})();

0

3件のコメント

Avatar
吉本茜

スタイルシートにつきましては解決いたしました。

表題のコメントお待ちしております。

どうぞよろしくお願いいたします。

0
Avatar
PV
str_query = '?query='+ FIELD_CODE +' like "' + keyword + '"';

の箇所を、

str_query = '?query='+ FIELD_CODE +' like "' + keyword + '" or kana like "' + keyword + '"';

とするとどうでしょうか

0
Avatar
吉本茜

PV様

 

お世話になっております。

教えていただいた通りにコードを変更してみたら実装できました!!

心より感謝申し上げます。

今後ともどうぞよろしくお願いいたします。

0
ログインしてコメントを残してください。