ドロップダウンの値を取得して一覧画面に表示

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

タイトルの件について、下記記事を参考に、

フォームの設定の取得

REST APIにて取得したフォーム(プルダウン)を一覧画面に表示したい

一覧画面にドロップダウンを表示させたいと考えております。

REST APIがよくわからなく、下記部分をアプリIDに変更すれば良いと思い、変更したのですが、「message: “入力内容が正しくありません。”, errors: Object」とエラーが出ている状況です。

var body = {
    "app": 1
};

現在、ドロップダウンのフィールドを2つ用意し、フィールドコードをフィールド1、フィールド2と設定しております。※記事に合わせて

アプリIDは、アプリのURLがhttps://***.cybozu.com/k/417/なので、417で設定しております。

(function($) {
    "use strict";
    kintone.events.on("app.record.index.show", function (event) {
        function createDropDown(record) {
            var select = document.createElement('select');
            var field1 = record['フィールド1'].value;
            var option1 = document.createElement('option');
            option1.setAttribute('value', field1);
            option1.innerHTML = field1;
            select.appendChild(option1);
            var field2 = record['フィールド2'].value;
            var option2 = document.createElement('option');
            option2.setAttribute('value', field2);
            option2.innerHTML = field2;
            select.appendChild(option2);
            var header = document.getElementsByClassName('kintone-app-record-headermenu-space')[0];
            header.appendChild(select);
        }
        var body = {
            "app": 417,
        };
        kintone.api(kintone.api.url('/k/v1/record', true), 'GET', body, function(resp) {
            createDropDown(body.record);
            }, function(error) {
            console.log(error);
        });
    });
})();

記事と同じように上記コード設定したのですが、どこか間違いはありますでしょうか。

お手数でございますが、ご教授いただいたければ幸いでございます。

Naoさん お世話になります。

"app": 417,
上記行の最後に,(カンマ)が付いてしまっているようです。これを外すとどうでしょうか?

高田 旭様

ご返信ありがとうございます。

ご教示いただいたように「,」カンマを外しましたが、同様のエラーになりました。

質問のコードですが、REST APIにて、該当アプリ(アプリID:417)のドロップダウンのフィールド1と2の値を取得し、

kintone-app-record-headermenu-spaceの部分に作成すると認識しているのですが、当たっていますでしょうか。

また、ライブラリ?(jQuery)等は何も設定をしていませんが、質問のコードのみで動作するでしょうか。

初心者の為、初歩的な質問で恐縮なのですが、再度ご確認いただければ幸いです。

よろしくお願いいたします。

Naoさん

大変失礼しました、後に続くコード内容をしっかりと読み込めていませんでした。

 kintone.api(kintone.api.url('/k/v1/record', true), 'GET', body, function(resp) {
ここで取得しているのはアプリID:417の特定レコード1件です。
そのため、取得する対象レコードIDを指定する必要がありますね。

var body = {
            "app": 417,
            "id": ここに存在するレコードIDを指定して下さい。
        };

高田 旭様

ご返信ありがとうございます。

ご教授いただいたようにidの設定をしたところ

var field1 = record[‘フィールド1’].value;の部分がrecord is undefinedのエラーになりました。

idをとりあえず、1で設定してみたのですが、

“id”: ここに存在するレコードIDを指定して下さい。というのは、どのようにIDを調べればよいのでしょうか。

度々で大変恐縮なのですが、ご教授いただければ幸いです。

よろしくお願いいたします。

 

> また、ライブラリ?(jQuery)等は何も設定をしていませんが、質問のコードのみで動作するでしょうか。

(function () {

→jQueryを指定していないのであれば$が不要で、出だしの記述は上記で大丈夫です。

 

> var field1 = record[‘フィールド1’].value;の部分がrecord is undefinedのエラーになりました。

createDropDown関数の呼び出しが誤っているようでした。

body.recordではなくresp.recordと思います。→ createDropDown(resp.record);

あとは私の環境でも動作確認してみたところ、下記要素取得でエラーになってしまいました。

            var header = document.getElementsByClassName('kintone-app-record-headermenu-space')[0];

暫定対処として下記要素取得に切り替えると、メニューが表示されること確認できました。
var header = document.getElementsByClassName('kintone-app-header-space')[0];

 

高田 旭様

ご返信ありがとうございます。

ご教授いただいた部分を修正し、表示ができました。

まだまだ完成ではないですが、色々と調べて設定してみます。

誠にありがとうございます。

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