0

我正在做一个涉及 PHP 的家庭作业。基本上,我有一个页面,其中包含一个 Web 表单,该表单呈现从数据库中提取的项目。每行都有复选框和 2 个单选按钮。用户选择“接受”或“拒绝”,当点击提交时,被选中的项目应该变为该批准状态。表单中的所有项目都提交到 post 中。我认为该帖子是一个数组,因此我可以使用带有计数器的 while 循环,以便循环遍历数组以及何时到达最后一个索引(应包含批准或拒绝)。生成一个查询,将所有先前的索引更改为批准或拒绝。如果这没有多大意义,我很抱歉。 这是一张图片以进行更多说明

这是我用来生成网络表单的代码:

<?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标签(复选框和单选按钮)都应该有一个 name 属性,例如:<input type='radio' name='accept' value='1' />. 当表单由 PHP 提交和处理时,您的脚本将能够访问该信息$_POST['accept'](或$_GET['accept']取决于表单的方法)。

因此,您应该能够为单选按钮指定一个名称,然后检查该索引处的 POST 数组中是否有值。

于 2012-04-25T19:36:07.833 回答
0

我将假设一些事情。首先,您的设计目标是仅处理您选择选择的批准队列中的项目,而不理会其他项目。其次,您希望将其状态更改为单选按钮中选择的状态。第三,您需要一个代码片段和一个关于如何完成任务的解释。

所以,就这样吧。

您有一系列复选框;我假设他们有相同的名字。如果您希望将值作为数组传递给 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 回答