差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン | |||
| 48th_8j1ham_rs [2026/08/25 21:56] – Tana JH1HST | 48th_8j1ham_rs [2026/08/27 03:54] (現在) – Tana JH1HST | ||
|---|---|---|---|
| 行 183: | 行 183: | ||
| color: #555; | color: #555; | ||
| font-size: 1.15em; | font-size: 1.15em; | ||
| + | font-weight: | ||
| + | margin-bottom: | ||
| + | } | ||
| + | |||
| + | .hf-cancelled { | ||
| + | width: 100%; | ||
| + | box-sizing: border-box; | ||
| + | margin: 24px 0; | ||
| + | padding: 22px; | ||
| + | background: #fff4e5; | ||
| + | border: 2px solid #e0a24a; | ||
| + | border-radius: | ||
| + | } | ||
| + | |||
| + | .hf-cancelled-title { | ||
| + | color: #b06000; | ||
| + | font-size: 1.25em; | ||
| font-weight: | font-weight: | ||
| margin-bottom: | margin-bottom: | ||
| 行 213: | 行 230: | ||
| # | # | ||
| .hf-winner, | .hf-winner, | ||
| - | .hf-not-selected { | + | .hf-not-selected, |
| + | .hf-cancelled | ||
| padding: 16px; | padding: 16px; | ||
| } | } | ||
| 行 279: | 行 297: | ||
| input.addEventListener(" | input.addEventListener(" | ||
| - | /* | ||
| - | * 全角英数字・記号を半角へ変換。 | ||
| - | * | ||
| - | * 例: | ||
| - | * JH1HST → JH1HST | ||
| - | * abc@example.com | ||
| - | * → abc@example.com | ||
| - | */ | ||
| this.value = this.value.normalize(" | this.value = this.value.normalize(" | ||
| 行 301: | 行 311: | ||
| : ''; | : ''; | ||
| - | /* | ||
| - | * サーバー側でも全角英数字・スペースを半角へ変換。 | ||
| - | * JavaScriptを使用しない環境への対策。 | ||
| - | */ | ||
| if (function_exists(' | if (function_exists(' | ||
| $input = mb_convert_kana($input, | $input = mb_convert_kana($input, | ||
| } | } | ||
| - | /* | ||
| - | * メールアドレス・コールサインで使用する | ||
| - | * 全角記号も念のため半角へ変換。 | ||
| - | */ | ||
| $input = strtr( | $input = strtr( | ||
| $input, | $input, | ||
| 行 367: | 行 369: | ||
| ); | ); | ||
| - | /* | ||
| - | * コールサイン・メールアドレスとも | ||
| - | * 大文字小文字を区別せず完全一致。 | ||
| - | */ | ||
| $callsign_norm = strtoupper($input); | $callsign_norm = strtoupper($input); | ||
| $email_norm | $email_norm | ||
| - | /* | ||
| - | * まず申込情報が存在するか確認。 | ||
| - | */ | ||
| $stmt = $pdo-> | $stmt = $pdo-> | ||
| ' | ' | ||
| 行 410: | 行 405: | ||
| } | } | ||
| - | /* | ||
| - | * 同じメールアドレスによる複数申込も考慮して、 | ||
| - | * 一致した全applicant_idから当選結果を検索。 | ||
| - | */ | ||
| $placeholders = implode( | $placeholders = implode( | ||
| ',', | ',', | ||
| 行 429: | 行 420: | ||
| band, | band, | ||
| operation_type, | operation_type, | ||
| - | slot_type | + | slot_type, |
| + | status | ||
| FROM results | FROM results | ||
| WHERE applicant_id IN (' . $placeholders . ') | WHERE applicant_id IN (' . $placeholders . ') | ||
| 行 442: | 行 434: | ||
| foreach ($results as $result) { | foreach ($results as $result) { | ||
| + | |||
| + | /* | ||
| + | * キャンセル済み | ||
| + | */ | ||
| + | if ( | ||
| + | isset($result[' | ||
| + | && $result[' | ||
| + | ) { | ||
| + | |||
| + | $date_text = hf_date_jp($result[' | ||
| + | |||
| + | $time_text = | ||
| + | $result[' | ||
| + | . ' | ||
| + | . $result[' | ||
| + | |||
| + | echo ' | ||
| + | <div class=" | ||
| + | |||
| + | <div class=" | ||
| + | この運用枠はキャンセル済みです。 | ||
| + | </ | ||
| + | |||
| + | <table class=" | ||
| + | |||
| + | <tr> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | |||
| + | < | ||
| + | . hf_h($date_text) | ||
| + | . '</ | ||
| + | |||
| + | < | ||
| + | . hf_h($time_text) | ||
| + | . '</ | ||
| + | |||
| + | <td> | ||
| + | < | ||
| + | . hf_h($result[' | ||
| + | . '</ | ||
| + | </td> | ||
| + | |||
| + | <td> | ||
| + | < | ||
| + | </td> | ||
| + | |||
| + | </tr> | ||
| + | |||
| + | </ | ||
| + | |||
| + | <p> | ||
| + | キャンセルとして受け付けています。 | ||
| + | </p> | ||
| + | |||
| + | </ | ||
| + | '; | ||
| + | |||
| + | continue; | ||
| + | } | ||
| $date_text = hf_date_jp($result[' | $date_text = hf_date_jp($result[' | ||
| 行 491: | 行 548: | ||
| '; | '; | ||
| - | /* | ||
| - | * 通常運用者 | ||
| - | */ | ||
| if (!empty($result[' | if (!empty($result[' | ||
| 行 505: | 行 559: | ||
| '; | '; | ||
| - | /* | ||
| - | * 体験運用などコールサインを登録していない方 | ||
| - | */ | ||
| } else { | } else { | ||
| 行 543: | 行 594: | ||
| } | } | ||
| - | /* | ||
| - | * 資格範囲外を含む体験運用の場合は明示。 | ||
| - | */ | ||
| if ( | if ( | ||
| $result[' | $result[' | ||
| 行 603: | 行 651: | ||
| } catch (Exception $e) { | } catch (Exception $e) { | ||
| - | /* | ||
| - | * DB内部エラーの詳細は公開しない。 | ||
| - | */ | ||
| echo ' | echo ' | ||
| <div class=" | <div class=" | ||