PHP将JSON解码为selectmenu选定选项
我想选择选项,我尝试了很多方法,当我从列表中选择一个选项并按submit后,selectmenu指向第一个元素,这使得我选择的选项实际上没有被选中。我无法发送用户选择的内容PHP将JSON解码为selectmenu选定选项,php,arrays,json,select,Php,Arrays,Json,Select,我想选择选项,我尝试了很多方法,当我从列表中选择一个选项并按submit后,selectmenu指向第一个元素,这使得我选择的选项实际上没有被选中。我无法发送用户选择的内容 <?php $operatorsAndPackages = $_SESSION['outputOperatorsAndPackages']; $json_a = json_decode($operatorsAndPackages,true); ?> <label>Paquet :
<?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操作,并将其与循环中的每个组合值进行比较,以确定当前值是否与提交的值相同。如果是,则设置选项元素的选定属性 以下代码示例的第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>
我有一个源代码的快速演示,位于:它指向菜单中的最后一个元素,没有选择任何内容。我不理解这个评论。我建议您通过转储$\u GET值进行调试,并在循环中转储每个$value以查看比较结果。@Lotus91,很抱歉,我在我向您提出的建议中发现了问题。我正在为所有元素输出一个选定的属性,如果存在,浏览器将对其进行操作,而不考虑它持有的值。我已将答案调整为只输出匹配答案的属性。@Lotus91我对答案的编辑是否使您离期望的目标更近了?不,我仍然有同样的问题,我无法选择任何选项