我正在描述该过程的纠正功能。
首先,用户发布订单,最初将status设置为“未批准”,但是他的经理可以看到订单请求,可以将status更改为“已批准”,然后将其转发给IT人员,他可以将status更改为UNDER PROCUREMENT。
我正在使用gmIT 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/

10-14 14:18
查看更多