質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1682閲覧

【kintone】検索窓の追加(and検索)

Yatthi

総合スコア10

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/02/15 08:26

前提・実現したいこと

kintoneにて検索窓の追加を実現しようとしています。
Javaは検索や助言をもらいながら作成をしており、全くの初心者です。
他の場所の情報から下記を作成し実施したところ、表示させるところまでは実現する事ができました。
しかし検索が思うようにできません。(クエリの構文がよくないみたい?)

必要な情報は後ほど載せるようにいたしますが、
変更点も含めご助言をいただけないでしょうか。

発生している問題・エラーメッセージ

エラーメッセージ 1つ目の窓に入力すると検索できるが、2つ目、3つ目と他の窓に入れるとエラーになる。 ### 該当のソースコード // 設定値 const FIELD_CODE1 = "フィールドコード1"; const FIELD_CODE1_NAME = "検索名1"; const AND_OR1 = "and"; // 必ず小文字 const FIELD_CODE2 = "フィールドコード2"; const FIELD_CODE2_NAME = "検索名2"; const AND_OR2 = "and"; // 必ず小文字 const FIELD_CODE3 = "フィールドコード3"; const FIELD_CODE3_NAME = "検索名3"; const AND_OR3 = "and"; // 必ず小文字 const FIELD_CODE4 = "フィールドコード4"; const FIELD_CODE4_NAME = "検索名4"; // 一覧表示のタイミングで実行 (function () { "use strict"; kintone.events.on("app.record.index.show", function (event) { // GET引数に格納された直前の検索キーワードを取得して再表示する var result = {}; var query = window.location.search.substring( 7 ); // URL固定部分(?query=)は無視 // クエリ検索条件の区切り記号 (and/or) で分割 var parameters = query.split( AND_OR1 ); // フィールドコード名と検索キーワードに分割する for( var i = 0; i < parameters.length; i++ ){ var element = parameters[ i ].split( 'like' ); var paramName = decodeURIComponent( element[0] ); var paramValue = decodeURIComponent( element[1] ); // スペースと""をtrimして、文字列だけにしてから、配列に格納 result[ paramName.replace(/^\s+|\s+$/g, "") ] = paramValue.replace(/^[\s|\"]+|[\s|\"]+$/g, ""); } // 検索キーワードその1 var search_word1 = document.createElement('input'); search_word1.onkeypress = function(e) { if (e.keyCode && e.keyCode == 13) { keyword_search(); } } if(result[ FIELD_CODE1 ] != undefined){ search_word1.value = result[ FIELD_CODE1 ]; // GET引数に、直前の検索キーワードがあったら格納しておく } // 検索キーワードその2 var search_word2 = document.createElement('input'); search_word2.onkeypress = function(e) { if (e.keyCode && e.keyCode == 13) { keyword_search(); } } if(result[ FIELD_CODE2 ] != undefined){ search_word2.value = result[ FIELD_CODE2 ]; // GET引数に、直前の検索キーワードがあったら格納しておく } // 検索キーワードその3 var search_word3 = document.createElement('input'); search_word3.onkeypress = function(e) { if (e.keyCode && e.keyCode == 13) { keyword_search(); } } if(result[ FIELD_CODE3 ] != undefined){ search_word3.value = result[ FIELD_CODE3 ]; // GET引数に、直前の検索キーワードがあったら格納しておく } // 検索キーワードその4 var search_word4 = document.createElement('input'); search_word4.onkeypress = function(e) { if (e.keyCode && e.keyCode == 13) { keyword_search(); } } if(result[ FIELD_CODE4 ] != undefined){ search_word4.value = result[ FIELD_CODE4 ]; // GET引数に、直前の検索キーワードがあったら格納しておく } // 検索ボタン var search_button = document.createElement('button'); search_button.innerHTML = '検索'; search_button.onclick = function () { keyword_search(); }; // キーワード検索の関数 function keyword_search(){ var keyword1 = search_word1.value; var keyword2 = search_word2.value; var keyword3 = search_word3.value; var keyword4 = search_word4.value; var str_query = '?query='+ FIELD_CODE1 +' like "' + keyword1 + '" ' + AND_OR +' '+ FIELD_CODE2 +' like "' + keyword2 + '" ' + AND_OR +' '+ FIELD_CODE3 +' like "' + keyword3 + '" ' + AND_OR +' '+ FIELD_CODE4 +' like "' + keyword4 + '"'; if(keyword1 == "" && keyword2 == "" && keyword3 == "" && keyword4 == ""){ str_query = ""; }else if(keyword1 != "" && keyword2 == "" && keyword3 == "" && keyword4 == ""){ str_query = '?query='+ FIELD_CODE1 +' like "' + keyword1 + '"' }else if(keyword1 == "" && keyword2 != "" && keyword3 == "" && keyword4 == ""){ str_query = '?query='+ FIELD_CODE2 +' like "' + keyword2 + '"' }else if(keyword1 == "" && keyword2 == "" && keyword3 != "" && keyword4 == ""){ str_query = '?query='+ FIELD_CODE3 +' like "' + keyword3 + '"' }else if(keyword1 == "" && keyword2 == "" && keyword3 == "" && keyword4 != ""){ str_query = '?query='+ FIELD_CODE4 +' like "' + keyword4 + '"' } // GET変数を使って、検索結果へジャンプ! document.location = location.origin + location.pathname + str_query } // キーワード入力部品を、kintoneヘッダ部分に埋め込む(重複を避けるため、最初に要素をクリアしておく) var aNode = kintone.app.getHeaderMenuSpaceElement() for (var i =aNode.childNodes.length-1; i>=0; i--) { aNode.removeChild(aNode.childNodes[i]); } var label = document.createElement('label'); label.appendChild(document.createTextNode(FIELD_CODE1_NAME)); label.appendChild(search_word1); label.appendChild(document.createTextNode(' '+ AND_OR +' ')); label.appendChild(document.createTextNode(FIELD_CODE2_NAME)); label.appendChild(search_word2); label.appendChild(document.createTextNode(' '+ AND_OR +' ')); label.appendChild(document.createTextNode(FIELD_CODE3_NAME)); label.appendChild(search_word3); label.appendChild(document.createTextNode(' '+ AND_OR +' ')); label.appendChild(document.createTextNode(FIELD_CODE4_NAME)); label.appendChild(search_word4); label.appendChild(document.createTextNode(' ')); label.appendChild(search_button); kintone.app.getHeaderMenuSpaceElement().appendChild(label); return event; }); })(); ソースコード

試したこと

特になし

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問