PHP 将 JSON 解码为 selectmenu 选定的选项

PHP decode JSON into selectmenu selected options

我想获得选项 selected,我尝试了很多方法,当我 select 从列表中选择一个选项并按下提交后 select 菜单指向第一个元素,这使得我 selected 的选项实际上没有 selected。而且我无法发送用户选择的内容。

<?php 
    $operatorsAndPackages = $_SESSION['outputOperatorsAndPackages'];
    $json_a = json_decode($operatorsAndPackages,true);
?>

<label>Paquet : Opérateur : Montant</label><br/>

<select id="recharge_operator" name="recharge_operator">
<?php foreach ($json_a as $value): ?>       
    <?php echo $value; ?>
    <option value="<?php echo $value[paquet_id] . ":" . $value[code_operateur] . ":" . $value[montant_recharge]; ?>"><?php echo $value[paquet_id] . ":" . $value[code_operateur] . ":" . $value[montant_recharge]; ?></option>
<?php endforeach ?>
</select>

您需要查看提交的值(我假设这是我的代码示例中的 POST 操作)并将其与循环中的每个组装值进行比较以确定当前值是否相同作为提交的内容。如果是,则设置 option 元素的 selected 属性。

以下代码示例的第 13 行和第 16 行是最相关的更改。

<?php 
    $operatorsAndPackages = $_SESSION['outputOperatorsAndPackages'];
    $json_a = json_decode($operatorsAndPackages,true);
?>

<label>Paquet : Opérateur : Montant</label><br/>

<select id="recharge_operator" name="recharge_operator">
<?php
    foreach ($json_a as $value)
    {
        $value = $value['paquet_id'] . ":" . $value['code_operateur'] . ":" . $value['montant_recharge'];
        $selected = ($value === $_GET['recharge_operator']);
        $html_safe_value = htmlentities($value);
?>
    <option value="<?php echo $html_safe_value; ?>"<?php if ($selected) {?> selected="selected"<?php } ?> >
        <?php echo $html_safe_value; ?>
    </option>
<?php
    }
?>
</select>

我有一个带有源代码的快速演示,网址为:http://jaaulde.com/test_bed/SO_Lotus91/