3

Iprint_rの場合、データの配列が返されます。

print_r($_POST);

私の入力フィールドは、標準の住所情報と患者 ID です。

Array ( [patient_id] => this [Last] => that [First] => Ted [ADDRESS1] => dey
[DOB] => [email] => [insurance_id] => [Phone] => [State] => CA [Zip] => 91236
[Status] => 3 [select_top] => 17 )

ステータスについては、通常、1、2、または 3 として入力されます。

  • 1 はリードに等しい
  • 2 はアクティブに等しい
  • 3 は非アクティブに等しい

POST 値を変更して、3 を入力すると非アクティブとして返されるか、2 がアクティブとして返されるようにするにはどうすればよいですか?

ループを実行してforeach、値をエイリアスなどに変更することはできますか?

foreach($_POST as $key => $val){
    if($key == '3') $val = Inactive;
}

どんな助けでも大歓迎です。

4

2 に答える 2

7

switchステートメントを使用できます。foreachループを使用する必要はありません:

switch($_POST['status']) {
    case 1: $_POST['status'] = 'Lead'; break;
    case 2: $_POST['status'] = 'Active'; break;
    case 3: $_POST['status'] = 'Inactive'; break;
    default: $_POST['status'] = 'Huh?';
}
于 2013-04-24T00:46:16.950 に答える
2

スーパーグローバルを操作するのではなく、既知の有効なエントリのセット$_POSTから値を検索したいと思います。例えば

$statusValues = array(
    1 => 'Lead',
    2 => 'Active',
    3 => 'Inactive'
);

if (!array_key_exists($_POST['status'], $statusValues)) {
    throw new UnexpectedValueException($_POST['status']);
}
$status = $statusValues[$_POST['status']];
于 2013-04-24T00:58:20.553 に答える