0

だから基本的に私は表形式を持っています。列の1つはチェックボックスであり、別の列は「非表示」と呼ばれ、値「yes」または「no」のいずれかが含まれます。

行を非表示にするボタンがあるので、ユーザーはチェックボックスを使用して特定の行を選択できるはずです。次に非表示ボタンをクリックすると、ユーザーが選択した行が「非表示」列の下の「はい」に変更されます。

したがって、私のSQLは次のようになります。

UPDATE nameOfTable
SET hidden = 'Yes'
WHERE hidden = 'No';

明らかに、これは現在「いいえ」であるすべての行の「非表示」列を「はい」に更新するだけですが、代わりに、ユーザーがチェックボックスを使用して選択した行を更新するようにするにはどうすればよいですか?

4

3 に答える 3

2

これを行うには、HTMLBD_APPLICATION パッケージを使用する必要があります。表形式のフォームを作成すると、APEX はテーブル内の編集可能な各フィールドにID を自動的に割り当てます。送信ボタンをクリックすると、テーブル内の選択されたアイテムをループする関数が必要になります。APEX が各フィールドに割り当てる名前は、そのテーブル内のそのフィールドの HTML を調べることで確認できます (これは HTML ID であり、X が数字である G_FXX のようになります)。また、データベースがバックエンドで更新する行を認識できるように、テーブルに各行を識別するフィールド (主キーなど) が必要です。

BEGIN
  FOR i IN 1..HTMLBD_APPLICATION.G_F01.COUNT LOOP
    UPDATE nameoftable SET hidden = 'yes' WHERE
      HTMLDB_APPLICATION.G_FXX(HTMLDB_APPLICATION.G_F01(i)) = row_key;
  END LOOP;
END;

update ステートメントの XX は、行の ID を含むテーブル内のフィールドになります。これにより、チェックされたボックスのリストと、チェックされた各行を更新するリストのループが取得されます。

于 2012-10-31T15:29:56.053 に答える
1
update nameoftable 
  set hidden='yes'
   where id =selectedcheckboxid

ここでidはテーブルの主キーです

于 2012-10-18T10:23:28.960 に答える
1

ユーザーが選択した主キー (id) の値をデータベース クエリに渡し、それを主キー フィールドと比較するだけです。そして明らかに、@SRIRAMによる上記の回答は間違いなくあなたのために働くでしょう..!!

于 2012-10-18T10:33:11.457 に答える