在 osCommerce 中将所有单选按钮设置为 true 或 false,或者仅将单选按钮设置为 true


Set all radio buttons to either true or false in osCommerce, or just the one as true?

我在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 '&nbsp;None' . tep_draw_radio_field('tab_id', '0', $none_tab_id) . 
     '&nbsp;coveralls' . tep_draw_radio_field('tab_id', '1', $coverall_tab_id) .
     '&nbsp;Shirts' .tep_draw_radio_field('tab_id', '2', $shirt_tab_id) . 
     '&nbsp;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,调用函数时未显式设置的任何参数都将这样设置。

只需将您需要为真的设置为真。当你这样做时,请加倍确保它也是第三个参数。