-4

PHPでPOSTを使用してデータを取得しています。チェックボックスがオンになっている場合は問題ありませんが、いずれかの行のチェックボックスがオフになっている場合は、チェックボックスの順序がすべて失われます。配列を出力しようとしましたが、チェックボックスがオフになっていると、その値が書き込まれないことがわかります。

たとえば、5つの行があり、そのうちの2つをチェックする場合です。この配列のサイズは5ではなく2です。チェックされていないチェックボックスを「0」の値に変換するにはどうすればよいですか。

<input onchange="saveChanges();" type="checkbox" name="showS[]" value="1">
4

5 に答える 5

0

POSTリクエストで送信された値がない場合(issetこれを決定するために使用)false、必要に応じて設定します。それ以外の場合は、送信されたフィールドの値を使用します。

于 2012-10-26T09:39:19.430 に答える
0

このロジックでそれを行うだけです

 <?php
      $checkbox = isset($_POST['checkbox'])?$_POST['checkbox']:0;
      ....
于 2012-10-26T09:39:52.607 に答える
0

チェックボックスがオフの場合、それは_POST配列に追加されないため、何も取得されません。

于 2012-10-26T09:40:07.883 に答える
0

チェックボックスに適切な値を設定します(たとえば、チェックボックスが関連するデータベーステーブルの行の主キー列の値)。

インデックスではなく、配列内のを処理します。

于 2012-10-26T09:40:37.900 に答える
0

あなたはいくつかのことをすることができます。1つは、これを実行して、チェック対象を実際に表示することです。

<input onchange="saveChanges();" type="checkbox" name="showS[value1]" value="1">

もちろん、配列ではなく、一意の識別子を使用することもできます。別のオプションは、名前ではなく値で違いを出すことです。

于 2012-10-26T09:40:54.327 に答える