MW211 EXIT

devlog
PHP/複数のsubmitボタン
2011年09月19日
同一画面(フォーム)内に複数のsubmitボタンがある場合、
それらのどれが押されたか区別する必要があるが、その方法。

(1) ボタンに表示される文字で識別する方法
┌──────────────────────────────────────┐
│【HTML側の設定】                                                            │
│<input type="submit" name="run" value="実行1"/>                            │
│<input type="submit" name="run" value="実行2"/>                            │
├──────────────────────────────────────┤
│【PHP側の処理】                                                             │
│if (isset($_POST['run'])) {                                                 │
│  switch ($_POST['run']) {                                                  │
│    case '実行1':                                                          │
│      処理1                                                                │
│      break;                                                                │
│    case '実行2':                                                          │
│      処理2                                                                │
│      break;                                                                │
│  }                                                                         │
│}                                                                           │
└──────────────────────────────────────┘

(2) ボタンのname属性で識別する方法
┌──────────────────────────────────────┐
│【HTML側の設定】                                                            │
│<input type="submit" name="run1" value="実行"/>                             │
│<input type="submit" name="run2" value="実行"/>                             │
├──────────────────────────────────────┤
│【PHP側の処理】                                                             │
│switch (TRUE) {                                                             │
│  case (isset($_POST['run1']))                                              │
│    処理1                                                                  │
│    break;                                                                  │
│  case (isset($_POST['run2']))                                              │
│    処理2                                                                  │
│    break;                                                                  │
│}                                                                           │
└──────────────────────────────────────┘
分類:PHP