像这样的事情
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);
关于你的最后一个问题,我们的方法之间的区别很简单,但再一次(ahh!)它的风格选择,都实现了相同的目标,这两种方法都用于“生产”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>
我怀疑有两种方法之间的任何显著的性能差异,但有一个化妆品的差别,我会突出。
有一些细微的差别,当涉及到你的代码是如何拥有,如果你要有条件地打印整个标签进行格式化,但他们不值得谈论 - 最大的,在我看来, ,是语法突出显示。
hmmm..this不检查正确的单选按钮,重要的是,没有为检查时,是应该的。 'printf('是'。“\ n”, ($ subscribedrips =='Yes'?'CHECKED':'') ); printf('否'。“\ n”, ($ subscribedrips =='No'?'CHECKED':'') ); ' – Josh
@Josh,你确定吗?这个对我有用。你可以发布你的所有代码吗? – jedwards
工作!谢谢! – Josh