我在osCommerce中的PHP表单中添加了一些单选按钮。我计划再添加一堆,但与此同时,我现在有四个。我想知道我是否需要将所有单选按钮设置为真/假,或者只是将我想要的单个实例设置为 true。
这是我的代码:
if (!isset($pInfo->tab_id)) $pInfo->tab_id = '1';
switch ($pInfo->tab_id) {
case '0': $none_tab_id = true; $shirt_tab_id = false;
$coverall_tab_id = false; $glove_tab_id = false;
break;
case '1': $coverall_tab_id = true; $shirt_tab_id = false;
$none_tab_id = false; $glove_tab_id = false;
break;
case '2': $coverall_tab_id = false; $shirt_tab_id = true;
$none_tab_id = false; $glove_tab_id = false;
break;
case '3': $glove_tab_id = true; $coverall_tab_id = false;
$shirt_tab_id = false; $none_tab_id = false;
break;
default: $coverall_tab_id = false; $shirt_tab_id = true;
$none_tab_id = false;
}
.
<?php
echo ' None' . tep_draw_radio_field('tab_id', '0', $none_tab_id) .
' coveralls' . tep_draw_radio_field('tab_id', '1', $coverall_tab_id) .
' Shirts' .tep_draw_radio_field('tab_id', '2', $shirt_tab_id) .
' Gloves' . tep_draw_radio_field('tab_id', '3', $glove_tab_id);
?>
osCommerce 将tep_draw_radio_field
函数定义为:
tep_draw_radio_field($name, $value = '', $checked = false, $compare = '')
是否有必要在每种情况下将所有变量设置为false
,或者我是否可以只设置我想要的变量?
在tep_draw_radio_field()
函数中,唯一必需的参数是单选按钮将使用的名称变量。
其余参数是可选的,并且已经为它们设置了默认值。
不需要将所有单选按钮编码为 true 或 false。默认参数为 false
,调用函数时未显式设置的任何参数都将这样设置。
只需将您需要为真的设置为true
即可。当你这样做时,请加倍确保它也是第三个参数。
为什么不做这样的事情呢?
if (!isset($pInfo->tab_id)) $pInfo->tab_id = '1';
$none_tab_id = ($pInfo->tab_id == '0');
$coverall_tab_id = ($pInfo->tab_id == '1');
$shirt_tab_id = ($pInfo->tab_id == '2');
$glove_tab_id = ($pInfo->tab_id == '3');
if(!($none_tab_id || $coverall_tab_id || $glove_tab_id || $shirt_tab_id)) {
$shirt_tab_id = true;
}
你可以收紧 switch 语句:
$none_tab_id = false;
$shirt_tab_id = false;
$coverall_tab_id = false;
$glove_tab_id = false;
switch ($pInfo->tab_id) {
case '0': $none_tab_id = true;
break;
case '1': $coverall_tab_id = true;
break;
case '2': $shirt_tab_id = true;
break;
case '3': $glove_tab_id = true;
break;
default: $shirt_tab_id = true;
}
您不需要将所有单选按钮编码为 true 或 false。默认参数为 false,调用函数时未显式设置的任何参数都将这样设置。
只需将您需要为真的设置为真。当你这样做时,请加倍确保它也是第三个参数。