0

我有一种情况,有 5 个单选按钮,打开页面时默认选中一个。这些单选按钮代表 5 个类别。每个类别中有几个子类别提交按钮。子类别按钮被隐藏,除了当前在单选按钮处选择的类别中的按钮。

我希望用户能够使用单选按钮选择一个类别,然后从其中一个子类别中进行选择,但是在页面刷新时(来自 $_POST 请求),我希望“当前”类别的单选按钮保持选中状态。就目前而言,页面通过提交子类别提交刷新,并且单选默认选中到第一个单选按钮类别。

我有 javascript 协调单选隐藏容器操作,因此表单标签必须看似覆盖所有五个单选按钮,并且所有五个单选按钮具有相同的名称,由于我的底层 javascript 无法更改。所以我不能简单地通过会话等更改每个收音机的名称和 PHP 中的代码。

实际上,我通过在您会发现已选中的单选标记中使用会话变量使类别保持在 $_POST 提交上,但我必须将每个单选和相应的子类别部分封装在其自己的表单标记中。这当然会导致 javascript 出现问题,并且单选按钮一旦按下,将无法再次按下。

有没有办法使用php解决这个问题?

你能帮忙的话,我会很高兴。提前致谢。

4

1 回答 1

2

我不得不在课堂上做到这一点,这有点麻烦。在页面加载时,将选中的项目值拉入变量(在本例中为 $val)。并为每个输入项内联:

<input type="radio" ... value="someval" <?php $x = ($val=='someval' ? 'checked="checked"' : ''); echo $x; ?> />

就像我说的那样,很麻烦,但它会检查正确的项目。唯一的事情是你的第一个项目需要更多的 if 逻辑,因为如果没有选择任何值,它将默认被检查。

<input type="radio" ... value="firstval" <?php $x = ((empty($val)) || ($val=='firstval')) ? 'checked="checked"' : ''; echo $x; ?> /> //removed extra bracket

您可以根据需要对其进行美化,这仅用于内联。

于 2013-01-29T19:28:08.343 回答