如何在PHP中匹配选中的单选框与对应的HTML隐藏输入框?
解决单选按钮选中后获取对应ID的问题
最优方案:直接将单选按钮的value设为产品ID
根本不需要额外的隐藏字段,直接把单选按钮的value值替换成产品ID即可,用户选中某个选项后,$_POST["product"]就能直接拿到对应的ID,代码修改如下:
foreach($products as $product) { echo '<input required type="radio" id="'.$product->ID.'" name="product" value="'.$product->ID.'">'; echo '<label for="'.$product->ID.'">'.$product->post_title.'</label><br>'; }
提交后获取ID:
$selectedProductId = $_POST['product'];
若需保留value为标题的备选方案
如果一定要让单选按钮的value保留为标题,可以通过关联映射的方式实现,但这种方式相对繁琐:
foreach($products as $product) { echo '<input required type="radio" id="'.$product->ID.'" name="product" value="'.$product->post_title.'">'; echo '<label for="'.$product->ID.'">'.$product->post_title.'</label><br>'; // 隐藏字段用标题作为键名,存储对应ID echo '<input type="hidden" name="product_ids['.$product->post_title.']" value="'.$product->ID.'">'; }
提交后通过选中的标题映射到ID:
$selectedTitle = $_POST['product']; $selectedProductId = $_POST['product_ids'][$selectedTitle];
注意:如果产品标题存在重复,第二种方案会出现ID覆盖问题,因此优先推荐第一种直接将
value设为ID的方案。
内容的提问来源于stack exchange,提问作者Rollor
相关产品推荐
相关产品推荐

