TOOL更新_AppHtmlUtil.php(HTMLSelect文字列、Radio文字列、CheckBox文字列作成クラス)
TOOL更新_これからAppHtmlUtil.php(HTMLSelect文字列、Radio文字列、CheckBox文字列作成クラス)はこのページを更新していく。
<?php // ============================================================= // 2010 kaz PHP自動作成お助けTOOL.(http://kazpgm.ddo.jp/) Start // 修正BSDライセンス。 // ============================================================= class AppHtmlUtil { /** * 指定されたコードのHTMLSelect文字列を作成する。 * <p> * @param emts コード配列 * @param indata 入力値(サニタイズ済みの値を指定する) * @param name name * @param dflt "▼選択してください"を設定する。設定しない場合""を指定する。 * @param elementsIdx 0(日本語),1(英語)を指定する。 * @return HTMLOption文字 */ function getHTMLSelect($emts, $indata, $name, $dflt, $elementsIdx = '0') { $result = "<select name=\"" . $name . "\" id=\"" . $name . "\" "; $result .= " >\n"; if ($dflt != '') { $result .= "<option value=\"\">" . htmlspecialchars($dflt) . "</option>\n"; } foreach ($emts as $key => $val) { $selected = ((String)$indata == htmlspecialchars((String)$key) ? "selected" : ""); $result .= "<option value='" . htmlspecialchars($key) . "' " . $selected . ">" . htmlspecialchars($val[$elementsIdx]) . "</option>\n"; } $result .= "</select>\n"; return $result; } /** * 指定されたコードのHTMLRadio文字列を作成する。 * <p> * @param emts コード名称 * @param indata 入力値(サニタイズ済みの値を指定する) * @param name name * @param dflt "指定なし"を設定する。設定しない場合""を指定する。 * @param elementsIdx 0(日本語),1(英語)を指定する。 * @param su 1行のITEM数 * @param addItemNm コード名の先頭にこの項目名を付加する * @return HTMLRadio文字 */ function getHTMLRadio($emts, $indata, $name, $dflt, $elementsIdx = '0', $su = 1, $addItemNm = '') { $indata = ($indata==null?"":$indata); $result = ""; $i = 0; foreach ($emts as $key => $val) { $i++; $checked = ((String)$indata == htmlspecialchars((String)$key) ? "checked" : ""); $result .= "<input type=\"radio\" name=\"" . $name . "\" value=\"" . htmlspecialchars($key) . "\" id=\"" . "radio_" . $name . $i . "\" " . $checked . " />\n"; $result .= "<label for=\"" . "radio_" . $name . $i . "\">" . $addItemNm . ($addItemNm =='' ? '':'を') . htmlspecialchars($val[$elementsIdx]) . "</label>" . ((($i % $su) == 0) ? "<br>" : "") ."\n"; } if ($dflt != '') { $checked = ((String)$indata == ""?"checked":""); $result .= "<input type=\"radio\" name=\"" . $name . "\" value=\"\" id=\"" . "radio_" . $name . "\" " . $checked . " />\n"; $result .= "<label for=\"" . "radio_" . $name . "\">" . htmlspecialchars($dflt) . "</label>\n"; } return $result; } /** * 指定されたコードのHTMLCheckBox文字列を作成する。 * <p> * @param emts コード名称 * @param indata 入力値(サニタイズ済みの値を指定する) * @param name name * @param elementsIdx 0(日本語),1(英語)を指定する。 * @param su 1行のITEM数 * @return HTMLCheckBox文字 */ function getHTMLCheckBox($emts, $indata, $name, $elementsIdx = '0', $su = 5) { $indata = ($indata==null?"":$indata); $result = ""; $i = 0; foreach ($emts as $key => $val) { $i++; if(is_array($indata)) { // 配列 $checked = ($indata[ htmlspecialchars((String)$key)]<>"" ? "checked" : ""); } else { $checked = ((String)$indata == htmlspecialchars((String)$key) ? "checked" : ""); } $result .= "<input type=\"checkbox\" name=\"" . $name . "\" value=\"" . htmlspecialchars($key) . "\" id=\"" . "check_" . $name . $i . "\" " . $checked . " />\n"; $result .= "<label for=\"" . "check_" . $name . $i . "\">" . htmlspecialchars($val[$elementsIdx]) . "</label>" . ((($i % $su) == 0) ? "<br>" : "") ."\n"; } return $result; } /** * 指定されたコードのHTMLCheckBoxの文字列のみを作成する。 * <p> * @param emts コード名称 * @param indata 入力値(サニタイズ済みの値を指定する) * @param elementsIdx 0(日本語),1(英語)を指定する。 * @return HTMLCheckBoxの文字列のみ */ function getHTMLCheckBoxDispStr($emts, $indata, $elementsIdx = '0') { $indata = ($indata==null?"":$indata); $result = ""; $i = 0; foreach ($emts as $key => $val) { $i++; if(is_array($indata)) { // 配列 if ($indata[ htmlspecialchars((String)$key)]<>"") { if ($elementsIdx == '0') { $result .= htmlspecialchars($val[$elementsIdx]) . "、"; } else { $result .= htmlspecialchars($val[$elementsIdx]) . ", "; } } } else { if ($indata == htmlspecialchars($key)) { if ($elementsIdx == '0') { $result .= htmlspecialchars($val[$elementsIdx]) . "、"; } else { $result .= htmlspecialchars($val[$elementsIdx]) . ", "; } } } } if ($result == "") { if ($elementsIdx == '0') { $result = "全て"; } else { $result = "AllSelected"; } } else { if ($elementsIdx == '0') { $result = mb_substr($result,0, mb_strlen($result) - mb_strlen("、")); } else { $result = mb_substr($result,0, mb_strlen($result) - mb_strlen(", ")); } } return $result; } } // ============================================================= // 2010 kaz PHP自動作成お助けTOOL.(http://kazpgm.ddo.jp/) End // 修正BSDライセンス。 // =============================================================
3/24 23:00-02:00 今日も昨日のつづき。プログラム配置に沿った修正をやっている。これも載せていなかったので今日載せた。いろいろな人がこれらの作成メソッドを作っている。でも自分で作成した物が一番使いい。そう、気に入っている。
6/10 20:40-21:00 AppHtmlUtilを使用するとき、@param indata 入力値はサニタイズ済みの値を指定することにした。画面出力もサニタイズすることにした。