0

そのようです:

if (post('tranfer') == 1 && $patient->exists)
    {
    sql::query("exec event.dbo.sp_tran " . $patient->hex);  
    }

チェックを外すと、リバース ストアド プロシージャを実行する必要があります。

これはテーブル内の新しいチェック ボックスであるため..どのメンバーも自動的にチェックされず、すべて 0 になります。そのため、単純な else ステートメントを使用できないと思います..

else (post('tranfer') == 0 && $patient->exists)
        {
        sql::query("exec event.dbo.sp_reverse " . $patient->hex);   
        }

それは機能しますか、それともこの作品に有害な何かが欠けていますか?

4

1 に答える 1

1
if ($patient->exists) {
  if (post('tranfer') == 1) {
    sql::query("exec event.dbo.sp_tran " . $patient->hex);
  } else {
    sql::query("exec event.dbo.sp_reverse " . $patient->hex);
  }
}

アップデート:

誰かがチェックボックスの値を変更したことを検出するには、列の古い値を含む隠しフィールドをフォームに配置します。

echo '<input name="old_tranfer" type="hidden" value="' . $patient->tranfer .'">';

次に、フォームを処理するときに、次のことができます。

if (post('transfer') != post('old_transfer') && $patient->hex) {
  if (post('tranfer') == 1) {
    sql::query("exec event.dbo.sp_tran " . $patient->hex);
  } else {
    sql::query("exec event.dbo.sp_reverse " . $patient->hex);
  }
}
于 2013-03-30T00:16:41.617 に答える