在mysql数据库中读取和覆盖单选按钮值

时间:2014-06-05 07:42:08

标签: php html mysql

我正在描述这个过程的纠正功能。 首先,用户发布订单,status最初设置为NOT APPROVED,但他的经理能够看到订单请求并可以将status更改为APPROVED,然后将其转发给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>";

另外,我希望根据订单状态默认选中单选按钮。

1 个答案:

答案 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;更新中的限定符。