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

时间:2015-02-12 14:56:11

标签: php arrays json select

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

<?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>

1 个答案:

答案 0 :(得分:0)

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

以下代码示例的第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/