在我的编辑页面上,如果$ subscribedrips等于是或否,我将如何显示正确的单选按钮?这是我拥有的,它不起作用:
if ($row['subscribedrips'] == Yes) {
echo
'<input type="radio" name="subscribedrips" value="Yes" CHECKED /> Yes
<input type="radio" name="subscribedrips" value="No" /> No';
}
elseif ($row['subscribedrips'] == No) {
echo
'<input type="radio" name="subscribedrips" value="Yes" /> Yes
<input type="radio" name="subscribedrips" value="No" CHECKED/> No';
}
elseif (empty($row['subscribedrips'])) {
echo
'<input type="radio" name="subscribedrips" value="Yes" CHECKED/> Yes
<input type="radio" name="subscribedrips" value="No" /> No';
}
答案 0 :(得分:2)
像这样的东西
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n",
($subscribedrips == 'Yes' ? 'CHECKED' : ''));
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",
($subscribedrips == 'No' ? 'CHECKED' : ''));
的工作原理。它使用三元运算符根据'CHECKED'
的值将$subscribedrips
或空字符串插入到输入标记中。
您也可以采用更详细的方式,例如使用开关:
$sel_y = '';
$sel_n = '';
switch($subscribedrips)
{
case 'Yes':
$sel_y = 'CHECKED';
break;
case 'No':
$sel_n = 'CHECKED';
break;
default:
// Neither need to be changed, so we dont even need this branch
break;
}
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", $sel_y);
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n", $sel_n);
真正的个人偏好。
更新了代码段1
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n",
((array_key_exists('subscribedrips', $row) && $row['subscribedrips'] == 'Yes') ? 'CHECKED' : ''));
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n",
((array_key_exists('subscribedrips', $row) && $row['subscribedrips'] == 'No') ? 'CHECKED' : ''));
更新了代码段2
$sel_y = '';
$sel_n = '';
if(array_key_exists('subscribedrips', $row))
{
switch($row['subscribedrips'])
{
case 'Yes':
$sel_y = 'CHECKED';
break;
case 'No':
$sel_n = 'CHECKED';
break;
default:
// Neither need to be changed, so we dont even need this branch
break;
}
}
printf('<input type="radio" name="subscribedrips" value="Yes" %s /> Yes'."\n", $sel_y);
printf('<input type="radio" name="subscribedrips" value="No" %s /> No'."\n", $sel_n);
关于你的上一个问题,我们的方法之间的区别非常简单,但是再一次(啊!)它的样式选择,都实现了相同的目标,两种方法都用在“生产”PHP代码中。
我的示例在PHP中构建整个输入标记并打印它。 Valentinas的方法将静态文本从PHP字符串中拉出来,并将其直接放入HTML中。
例如,以下行将产生相同的输出:
<?php printf("<strong>%s</strong>", $some_string); ?>
<?php echo "<strong>$some_string</strong>"; ?>
<?php echo "<strong>".$some_string."</strong>"; ?>
<strong><?php echo $some_string; ?></strong>
我怀疑两种方法之间是否有任何明显的性能差异,但我会强调一个不同的外观差异。
语法突出显示 - 如果您使用带语法突出显示的编辑器,valentinas的方法将允许语法高亮显示器适当地突出显示input
标记及其属性。使用我的方法,整个字符串将突出显示相同。 Here is a screenshot显示了记事本++如何突出显示这两种方法。
正如您所看到的,valentinas的方法会产生更加丰富多彩的显示效果,有助于识别和追踪错误。
如果你想有条件地打印整个标签,你的代码必须如何格式化有一些细微的差别,但它们并不值得讨论 - 在我看来,最大的是语法高亮。
答案 1 :(得分:0)
可能会在值附近缺少“”吗?
if ($subscribedrips == "Yes") {
答案 2 :(得分:0)
也许是这样的:
<?php $subscribedrips = $row['subscribedrips']; ?>
<input type="radio" name="subscribedrips" value="Yes" <?php echo ($subscribedrips == 'Yes') ? "checked" : "" ; ?>/> Yes
<input type="radio" name="subscribedrips" value="No" <?php echo ($subscribedrips == 'No') ? "checked" : "" ; ?>/> No
我喜欢从PHP标签中取出标记 - 使其更具可读性。
答案 3 :(得分:0)
上面提到的所有代码都可以工作,但它们看起来很大或没有线路更多,如果我们使用如上所述可能有很好的方法 我有一个更好,更简单的方法来显示页面中单选按钮的值
添加形式的代码:
<td>Gender</td>
<td><input type="radio" name="emp_gender" id="emp_gender" value="M" />Male
<input type="radio" name="emp_gender" id="emp_gender" value="F" />Female</td>
现在,如果您想编辑性别字段,则必须带上之前选择的值
这样做我的代码是
<td>Gender</td>
<td><input type="radio" name="emp_gender" id="emp_gender" value="M" <?php echo ($emp_gender == 'M')? "CHECKED" : " " ?> />Male
<input type="radio" name="emp_gender" id="emp_gender" value="F" <?php echo ($emp_gender == 'F')? "CHECKED" : " " ?> />Female</td>
上面的粗体线对于将单选按钮的值带到编辑表单
非常重要