我正在描述这个过程的纠正功能。
首先,用户发布订单,status
最初设置为NOT APPROVED,但他的经理能够看到订单请求并可以将status
更改为APPROVED,然后将其转发给IT人员和他可以将status
更改为UNDER PROCUREMENT。
我正在使用gm
和IT guy
的单选按钮来更改状态。但是,我无法更改状态。这是更好理解的代码
echo'<th>Product</th><th>Type</th><th>Quantity</th><th>Order Status</th>';
while ($row = mysqli_fetch_array($result)){
$type=$row["type"];
$make=$row["make"];
$quantity=$row["quantity"];
echo "<tr>";
echo "<td>" . $row['type'] . "</td>";
echo "<td>" . $row['make'] . "</td>";
echo "<td>" . $row['quantity'] . "</td>";
echo '<form method="post">';
//Radio buttons used here
echo '<td><input type="radio" name="status[' . $row['order_id'] . ']" value="not approved" checked >Not Approved<br>
<input type="radio" name="status[' . $row['order_id'] . ']" value="approved">Approved</td>';
echo '</form>';
$_SESSION['radio'] = $_POST['status[]'];
$qr = "UPDATE order_info SET status = '".$_SESSION['radio']."' WHERE username = '".$_SESSION['username']."'";
$rs = mysqli_query($con3,$qr) or die(mysqli_error($con3));
}
echo "</table>";
另外,我希望根据订单状态默认选中单选按钮。
答案 0 :(得分:0)
问题在于输入名称:
echo '<td><cb><input type="radio" name="status[' . $row['order_id'] . ']" value="not approved" checked >Not Approved<br>
<input type="radio" name="status[' . $row['order_id'] . ']" value="approved">Approved</cb></td>';
echo '</form>';
您正在创建一个数组。您可以通过此示例看到这一点:
<form method ='post'>
<input type='radio' name='status["25"]' value='not approved'>Not Approved
<input type='radio' name='status[25]' value='approved'>Approved
<input type='submit' value='Submit'>
</form>
<pre>
<?
session_start();
print_r($_POST);
$_SESSION['radio'] = $_POST['status'];
print_r($_SESSION);
?>
</pre>
这可能是为了保留order_id,但您的更新查询未指定order_id,并将更新该用户名的所有行。如果您一次只更新一行,则可以使用隐藏字段传递订单ID(如果您甚至需要它?):
echo '<input type="hidden" name="order_id" value="'.$row['order_id'].'">';
这意味着您可能错过了&#34;而order_id =&#34;更新中的限定符。