0

PHP に関する宿題に取り組んでいます。基本的に、データベースからプルされたアイテムをレンダリングする Web フォームを含むページがあります。各行にチェックボックスと 2 つのラジオ ボタンがあります。ユーザーが「承認」または「拒否」を選択し、送信をクリックすると、チェックされた項目がその承認ステータスに変更されるはずです。フォーム内のすべてのアイテムがポストに送信されます。post は配列だと思ったので、while ループとカウンターを使用して、ループが配列を通過し、最後のインデックス (承認または拒否を含む必要があります) に到達したときに使用できます。以前のすべてのインデックスを承認または拒否に変更するクエリが生成されます。これがあまり意味をなさない場合は申し訳ありません。 ここにもっと明確にするための写真があります

Webフォームを生成するために使用したコードは次のとおりです。

<?php
       #create a query string
       $query = "SELECT * FROM Request WHERE superemail = '$user'";
       #echo $query;

       #run the query
       $result = mysqli_query($link, $query) or die('error querying');

       while($row = mysqli_fetch_array($result)){
              #print out each row of the queryi
              #line up the query results with temporary strings
              $change = $row['KEY'];
              $name = $row['first']. " " . $row['last'];
              #echo $name;
              $email = $row['email'];
              #echo $email;
              $type = $row['type'];
              #echo $type;
              $duration = $row['duration'];
              $status = $row['status'];

              #create a table row with the query results

              echo "<tr><td><input type=checkbox name=$change /></td>
              <td>$name</td>
              <td>$email</td><td>$type</td>
              <td>$duration</td><td>$status</td></tr>";

      } #end while
  ?>
  <label for=update>Change status to:</label><br />
  <input type=radio name=update value=A />Approved<br />
  <input type=radio name=update value=D />Denied<br />
  <input type = submit value = "Change Status" />
4

2 に答える 2

0

HTMLの各inputタグ(チェックボックスとラジオボタン)には、次のような名前属性が必要です<input type='radio' name='accept' value='1' />$_POST['accept']フォームが送信されてPHPによって処理されると、スクリプトはで(または$_GET['accept']フォームのメソッドによっては)その情報にアクセスできるようになります。

したがって、ラジオボタンの名前を指定してから、そのインデックスのPOST配列に値があるかどうかを確認できるはずです。

于 2012-04-25T19:36:07.833 に答える
0

いくつかのことを仮定します。まず、選択した承認キュー内のアイテムのみを処理し、他のアイテムはそのままにしておくことが設計上の目標であること。次に、ステータスをラジオ ボタンで選択したものに変更します。3 つ目は、コード スニペットと、タスクがどのように達成されたかについての説明の両方が必要であることです。

それで、ここに行きます。

一連のチェックボックスがあります。彼らは同じ名前を持っていると思います。値を配列として PHP に渡したい場合は、 !whatever[]を強調して入力に名前を付ける必要があります。[]これは、チェックボックスから配列を作成して $_POST/$_GET に表示するものです。選択した項目のみが配列に表示されます。値は、入力をサニタイズした後、選択してクエリできる有用なもの(たとえば、対応するデータベーステーブルの値)でなければなりません。

したがって、HTML 入力タグは次のようになります。

<input type="checkbox" name="process[]" value="<?php echo $employeeName ?>" >

あなたはこれをあなたに返さなければなりません...

$_POST['process'][array(0=>name1, 1=>name2/*...etc*/)]

...これは、自由に foreach でループできます。

于 2012-04-25T19:57:55.607 に答える