開発者向け機能:サーバスクリプト:context.AddResponse
## 概要
[サーバスクリプト](/ja/manual/table-management-server-script)で任意のクライアントレスポンスを返却します。
## 制限事項
1. リンクしたアイテムの作成ボタンでの子レコードの作成後の画面遷移など、method「Href」を指定しても製品側仕様が優先する場合があります。
## 構文
```
context.AddResponse(method,target,value)
```
## パラメータ
|パラメータ|型|概要|
|:--|:--|:--|
|method|string|レスポンスの操作種別を指定します。下記のmethod部分をご参照ください。|
|target|string|対象の要素のIDを指定します。|
|value|object|要素や値を指定します。|
### method
|種別|説明|
|:--|:--|
|ReplaceAll|上記のtargetに指定した要素をvalueに指定した要素に置き換えます。|
|Set|フォームに情報を格納します。|
|Href|ポストバック後の遷移先URLを指定します。|
## 戻り値
戻り値はありません。
## 使用例①
以下の例では、分類Cのフィールドを \<div style="color:red">Pleasanter\</div> で置き換えます。
```
context.AddResponse('ReplaceAll','#Results_ClassCField','<div class="field-normal" style="color:red">Pleasanter</div>');
```
## 使用例②
以下の例では、フォーム($p.data.MainForm)に以下の情報を格納します。
【格納する情報】
・項目:数値A項目
・値:123
```
context.AddResponse('Set','NumA',123);
```
## 使用例③
以下の例では、作成後にサイトID1234のテーブルに遷移します。
```
context.AddResponse('Href','','/items/1234/index');
```
## サンプルコード
<details>
<summary>1. テーブル内に期限切れレコードが存在した場合、ガイド欄にアナウンスを表示する</summary>
ReplaceAllメソッドでガイド欄の文言を動的に置き換えるサンプルコードです。
期限付きテーブルの一覧表示時に、期限切れのレコードを取得、1件でも期限切れレコードがあった場合、"ガイド欄の内容をReplaceAllメソッドで置き換えます。
期限切れレコードが存在する場合、以下のようにガイド欄に文言とリンクが表示されます。

**※なお、本サンプルはVer1.5.0.0以降に対応しています。**
##### CSS
以下スタイルを設定することで、ガイド欄の文字色を赤にします。
```css
.md-viewer * {
color: red !important;
}
```
##### JavaScript
条件:画面表示の前
```javascript
// 一覧画面(index)のときだけ動作
if (context.Action !== 'index') return;
// 文字列をHTMLとして差し込むため、最低限のエスケープ
const escapeHtml = (s) =>
String(s ?? '').replace(
/[&<>"']/g,
(c) =>
({
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
})[c],
);
// /items/<id>... の <id> 以降を落として /items/ で終わるURLを作る
const getItemsBaseUrl = () => {
const url = String(context.Url ?? '');
const m = url.match(/^(.*?\/items\/)/);
return m ? m[1] : '';
};
// 期限切れ(Overdue)のレコードを取得
const getOverdueItems = () => {
const param = {
View: { Overdue: true, ColumnSorterHash: { IssueId: 'asc' } },
};
return Array.from(items.Get(context.SiteId, JSON.stringify(param)));
};
// main処理
// 期限切れレコードを取得
const overdueItems = getOverdueItems();
// 期限切れレコードがなければ終了
if (overdueItems.length === 0) return;
// ベースURLを生成
const baseUrl = getItemsBaseUrl();
// 期限切れレコードのリンク一覧HTMLを生成
const linksText = overdueItems
.map((item) => {
const id = item.IssueId;
const title = escapeHtml(item.Title);
return `- ### [${title}](${baseUrl}${id})`;
})
.join('\n');
const guideText = `
[md]
# 期限切れのアイテムがあります。至急確認してください。
## 対象レコード
${linksText}
`;
// ガイドエリア用のHTMLを生成
const html = `
<div id="Guide">
<div>
<markdown-field class="is-disabled">
<textarea class="md-text" id="guide-textarea" data-readonly="1">${guideText}</textarea>
</markdown-field>
</div>
</div>
`;
// ガイドエリア(#Guide)を差し替え
context.AddResponse('ReplaceAll', '#Guide', html);
```
</details>
## 関連情報
<div id="ManualList"><ul><li><a href="/ja/manual/table-management-server-script">テーブルの管理:サーバスクリプト</a><span>2026/02/10 up</span></li></ul></article>
<ul><li><a href="/ja/manual/server-script">開発者向け機能:サーバスクリプト</a><span>2025/11/27 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />


