# 指定した一覧画面にて、条件検索をしたい

**URL:** <https://community.cybozu.dev/t/topic/3904>\
**Category:** kintone 開発相談\
**Created:** [2019 年 4 月 2 日午前 5:58 UTC](https://community.cybozu.dev/t/topic/3904 "2019-04-02T05:58:17Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account777](https://avatars.discourse-cdn.com/v4/letter/l/977dab/32.png) [@Legacy\_Account777](https://community.cybozu.dev/u/Legacy_Account777)\
**Post date:** [2019 年 4 月 2 日午前 5:58 UTC](https://community.cybozu.dev/t/topic/3904/1 "2019-04-02T05:58:17Z")

</div>

現在一覧を複数使用しております。  
今回、一覧画面に【検索】ボタンを追加して、一覧画面毎にこの検索機能を使用したいと考えています。  
参考URL：[https://qiita.com/sy250f/items/b17f6cbbeb2b862c48a9](https://qiita.com/sy250f/items/b17f6cbbeb2b862c48a9)

しかし、一番上以外の一覧を表示して、【検索】ボタンを押下するとどうしても一番上のデータに対して、検索結果が表示されてしまいます。  
自分で指定した一覧に対して、検索を行えないのでしょうか？

search\_button.onclick = function () {  
// キーワード検索の関数（複数フィールド対応）  
var keyword = search\_word.value;  
if (keyword === “”) {  
msg\_ary.push(‘検索項目が入力されていません。’);  
msg\_str = msg\_ary.join(‘’);  
swal({  
title : “検索結果”,  
text : msg\_str,  
icon : “error”  
});  
} else {  
var str\_query = “”;  
if(keyword !== “”){  
str\_query = ‘?query=(’;  
for (var i=0; i\<FIELD\_CODE.length; i++){  
if (i \>= 1){  
str\_query = str\_query + ’ or ‘;  
}  
str\_query = str\_query + ‘(’ + FIELD\_CODE[i] +’ like “’ + keyword + '”)';  
}  
str\_query = str\_query + ‘)’;  
}

//検索結果のURLへ  
document.location = location.origin + location.pathname + str\_query;  
// document.location = location.origin + location.pathname + location.search + str\_query; ← 表示されている一覧のURLを取得して実行するとエラーとなります  
}  
};

※指定した一覧のURLを取得して、そこに対してQueryを実行すると下記エラーが出ます。  
テンプレートのエラーです。  
Code: CB\_TE01

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2017](https://avatars.discourse-cdn.com/v4/letter/l/f19dbf/32.png) [@Legacy\_Account2017](https://community.cybozu.dev/u/Legacy_Account2017)\
**Post date:** [2019 年 4 月 2 日午前 8:09 UTC](https://community.cybozu.dev/t/topic/3904/2 "2019-04-02T08:09:39Z")

</div>

以下のような感じでviewIdを指定してみてはどうでしょうか。

```
var viewId;

kintone.events.on('app.record.index.show', function (event) {
   viewId = event.viewId;
});

search_button.onclick = function () {

    // ～略～

        str_query = '?view=' + viewId + '&query=(';

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account777](https://avatars.discourse-cdn.com/v4/letter/l/977dab/32.png) [@Legacy\_Account777](https://community.cybozu.dev/u/Legacy_Account777)\
**Post date:** [2019 年 4 月 2 日午前 10:27 UTC](https://community.cybozu.dev/t/topic/3904/3 "2019-04-02T10:27:13Z")

</div>

ＰＶさん

ご返事ありがとうございます。  
教えて頂いた方法で該当一覧からデータを抽出できました。

ただ、新たな問題が発生してしまいました。  
指定の一覧からデータを抽出できるようにはなったのですが、一覧の中で絞り込みの指定をしているのですが  
検索ボタン押下時、その絞り込みが消えてしまいます。  
絞り込みはどこかにフィールドに保存されているのでしょうか？

もし知っていたら教えて頂けますでしょうか？  
よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2017](https://avatars.discourse-cdn.com/v4/letter/l/f19dbf/32.png) [@Legacy\_Account2017](https://community.cybozu.dev/u/Legacy_Account2017)\
**Post date:** [2019 年 4 月 3 日午前 12:07 UTC](https://community.cybozu.dev/t/topic/3904/4 "2019-04-03T00:07:13Z")

</div>

絞り込み条件は、kintone.app.getQueryCondition()で取得できます。

検索のinputに戻す場合は、以下のイメージでしょうか。

```
        let query = kintone.app.getQueryCondition();
        if (!query) {
            return;
        }

        let parameters = query.split('and');

        for (var i = 0; i < parameters.length; i++) {
            if (/検索対象のフィールドコード *=/.test(parameters[i])) {
                document.getElementById('search_word').value = parameters[i].replace(/検索対象のフィールドコード *= *"(.*)?.*"/g, '$1').trim();
            }
        }

```

&nbsp;

簡単にやるなら、検索時にsessionStorageに保存し、表示時に復元するとかでしょうか。

[https://developer.mozilla.org/ja/docs/Web/API/Window/sessionStorage](https://developer.mozilla.org/ja/docs/Web/API/Window/sessionStorage)

---

<div class="post-metadata">

**Author:** ![Legacy\_Account777](https://avatars.discourse-cdn.com/v4/letter/l/977dab/32.png) [@Legacy\_Account777](https://community.cybozu.dev/u/Legacy_Account777)\
**Post date:** [2019 年 4 月 4 日午前 2:11 UTC](https://community.cybozu.dev/t/topic/3904/5 "2019-04-04T02:11:13Z")

</div>

ＰＶさん

教えて頂いた方法で実装できました。

ご教授の程、ありがとうございました。
