我正在描述该过程的纠正功能。
首先,用户发布订单,最初将status
设置为“未批准”,但是他的经理可以看到订单请求,可以将status
更改为“已批准”,然后将其转发给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>";
另外,我希望根据订单状态在默认情况下选中单选按钮。
最佳答案
问题出在您的输入名称上:
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'].'">';
这意味着您可能在更新中缺少“ and order_id =”限定词。
关于php - 读取和覆盖mysql数据库中的单选按钮值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24054415/