如何根据php中的值选中或取消选中单选按钮?

How to check or uncheck the radio button according to value in php?

我卡在这个问题上了。 我有两个单选按钮。一个是 Buyer,第二个是 Seller

 <input type="radio" name="account_type" value="1" id="acc_buyer" checked="checked">Buyer
 <input type="radio" name="account_type" value="2" id="acc_seller">Seller

买家单选按钮已被选中。

现在我正在做的是,我有下面的代码,如果 $account_type==2 那么我必须 select seller 单选按钮并取消选中买家。

我尝试了下面的代码

 if(isset($_SESSION['error'])){
    $error = $_SESSION['error'];
    $account_type = $_SESSION['account_type'];
    unset($_SESSION['account_type']);
    unset($_SESSION['error']);
}
 
 <input type="radio" name="account_type" value="1" id="acc_buyer" checked="checked"> Buyer
 <input type="radio" name="account_type" value="2" id="acc_seller" <?php if(isset($account_type) && $account_type=='2') { ?> checked="checked" <?php }?>> Seller

这是添加了 empty() 检查的更正。


$checked = [];
$checked[0] = empty($account_type) || (isset($account_type) && $account_type == 1) ? 'checked' : '';
$checked[1] = isset($account_type) && $account_type == 2 ? 'checked' : '';

<input type="radio" name="account_type" value="1" id="acc_buyer" checked="<?php echo $checked[0] ?>">
<input type="radio" name="account_type" value="2" id="acc_seller" checked="<?php echo $checked[1] ?>">
<?php
if(isset($_SESSION['error'])){
    $error = $_SESSION['error'];
    $account_type = $_SESSION['account_type'];
    unset($_SESSION['account_type']);
    unset($_SESSION['error']);
}
?> 
<input type="radio" name="account_type" value="1" id="acc_buyer" checked="checked">
 <input type="radio" name="account_type" value="2" id="acc_seller" <?php if($account_type==2){echo 'checked="checked"';}?>>

我希望我不会重复别人的答案并且我的解决方案不是不必要的,但我使用了这个代码片段:

<?php
if(isset($_SESSION['error']))
{
    $error = $_SESSION['error'];
    $account_type = $_SESSION['account_type'];
    unset($_SESSION['account_type']);
    unset($_SESSION['error']);
}
$account_type_set = isset($account_type);
$buyer = $account_type_set ? ($account_type == 2 ? 0 : 1) : null;
$seller = $account_type_set ? !$buyer : null;
?>
 <input type="radio" name="account_type" value="1" id="acc_buyer" <?php if($buyer) { ?> checked="checked" <?php }?>> Buyer
 <input type="radio" name="account_type" value="2" id="acc_seller" <?php if($seller) { ?> checked="checked" <?php }?>> Seller

我找到了答案:我所做的是检查 $account_type 是否为空,然后添加检查。所以我正在检查买家。

我不知道这是不是最佳答案,但它解决了我的问题。

我试过了

if(isset($_SESSION['error'])){
        $error = $_SESSION['error'];
        $account_type = $_SESSION['account_type'];
        unset($_SESSION['account_type']);
        unset($_SESSION['error']);
    }

<input type="radio" name="account_type" value="1" id="acc_buyer" <?php if(empty($account_type)){?> checked="checked" <?}?>>Buyer

<input type="radio" name="account_type" value="2" id="acc_seller" <?php if( isset($account_type) && $account_type=='2'){?> checked="checked" <?}?>>  Seller