# レコード一覧画面からレコードを編集するボタンを作りたい

**URL:** <https://community.cybozu.dev/t/topic/1231>\
**Category:** kintone 開発相談\
**Created:** [2022 年 12 月 13 日午前 3:30 UTC](https://community.cybozu.dev/t/topic/1231 "2022-12-13T03:30:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2683](https://avatars.discourse-cdn.com/v4/letter/l/7feea3/32.png) [@Legacy\_Account2683](https://community.cybozu.dev/u/Legacy_Account2683)\
**Post date:** [2022 年 12 月 13 日午前 3:30 UTC](https://community.cybozu.dev/t/topic/1231/1 "2022-12-13T03:30:25Z")

</div>

[こちら](https://community.cybozu.dev/hc/ja/community/posts/13057609117337-kintone%E3%81%AE%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E7%94%BB%E9%9D%A2%E3%81%8B%E3%82%89%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%97%E3%81%9F%E3%81%84?input_string=%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%80%E8%A6%A7%E7%94%BB%E9%9D%A2%E3%81%8B%E3%82%89%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%99%E3%82%8B%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%81%84)の投稿を参考に、レコード一覧画面に設置したボタンを押すと、kintoneAPIを使用してレコードの編集を行う処理を書いています。

レコード一覧画面に表示されているレコードすべてに対し、フィールドコード「stamp」のフィールド（ラジオボタン）を「未確認」から「確認済み」に変更するような処理を想定しています。

以下ソース中のfor文が回り、レコード一覧のレコードを撫でていく処理までは正常に行えた（window.alertが出た）のですが、肝心のレコードの編集部分がうまくいきません。

通信内容の確認（[参考ページ](https://community.cybozu.dev/hc/ja/articles/4977994758297-kintone-JavaScript-%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%BE%E3%81%A8%E3%82%81#check-the-network)）を行ってみると「records」の中身が空っぽのままリクエストが飛んでいるように見えます。

&nbsp;

下記のソースについて間違い箇所や抜けなど、見て頂けますと幸いです。

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

```
kintone.events.on(["app.record.index.show"], (event) => {
    let records = event.records;
    let recNum = records.length;
    let appId = kintone.app.getId();
    let recs;

    let body = {
        app: appId,
        records: []
    };

    //ボタン増殖をふせぐ
    if (document.getElementById('my_index_button') !== null) {
        return;
    }
    const myIndexButton = document.createElement('button');
    myIndexButton.id = 'my_index_button';
    myIndexButton.innerText = '確認完了ボタン';
    myIndexButton.onclick = () => {
      const myHeaderSpace = kintone.app.getHeaderSpaceElement();

        for (let i = 0; i < recNum; i++) {

            recs = records[i].$id.value;
            window.alert(i + "番目 id->" + recs);
            body.records.push(
                {
                    'id': Number(recs),
                    'record': {
                        'stamp': {
                            value: '確認済み',
                        }
                    },
                }
            )
      }
    };
//ボタンの配置
    kintone.app.getHeaderMenuSpaceElement().appendChild(myIndexButton);

    return kintone.api(kintone.api.url('/k/v1/records.json', true), 'PUT', body, function (resp) {
        // success
        console.log(resp);
    }, function (error) {
        // error
        console.log(body);
        console.log(error);
    });
});

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1177](https://avatars.discourse-cdn.com/v4/letter/l/77aa72/32.png) [@Legacy\_Account1177](https://community.cybozu.dev/u/Legacy_Account1177)\
**Post date:** [2022 年 12 月 13 日午前 5:59 UTC](https://community.cybozu.dev/t/topic/1231/2 "2022-12-13T05:59:51Z")

</div>

APIを実行する処理部分がボタンのクリックイベントの外にあります。クリックイベントの中でAPIを実行する必要があります。

```
    };
    //ボタンの配置
    kintone.app.getHeaderMenuSpaceElement().appendChild(myIndexButton);

    return kintone.api(kintone.api.url('/k/v1/records.json', true), 'PUT', body, function (resp) {
        // success
        console.log(resp);
    }, function (error) {
        // error
        console.log(body);
        console.log(error);
    });

```

↓

```
for () {
// 略
        }

        kintone.api(kintone.api.url('/k/v1/records.json', true), 'PUT', body, (resp) => {
            console.log(resp);
location.reload();
      }, (error) => {
console.error(error);
});
    };
    //ボタンの配置
    kintone.app.getHeaderMenuSpaceElement().appendChild(myIndexButton);

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2683](https://avatars.discourse-cdn.com/v4/letter/l/7feea3/32.png) [@Legacy\_Account2683](https://community.cybozu.dev/u/Legacy_Account2683)\
**Post date:** [2022 年 12 月 13 日午前 6:23 UTC](https://community.cybozu.dev/t/topic/1231/3 "2022-12-13T06:23:56Z")

</div>

385013133091さん

修正いただいた点を適用し、想定通りの動作を確認できました。

ありがとうございました。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2023 年 12 月 12 日午前 7:27 UTC](https://community.cybozu.dev/t/topic/1231/4 "2023-12-12T07:27:37Z")

</div>

クローズされました: 2023 年 12 月 12 日午前 7:27 UTC

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
