Установить все переключатели на true или false в osCommerce, или только на одну как true? - PullRequest
0 голосов
/ 05 октября 2011

Я добавил несколько радиокнопок в форму PHP в osCommerce. Я планирую добавить еще кучу, но пока у меня их четыре. Мне интересно, нужно ли мне установить все переключатели как true / false или только один экземпляр, который я хочу, как 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 или если я могу просто установить ту, которую я хочу установить в true?

Ответы [ 4 ]

0 голосов
/ 17 октября 2011

Вам не нужно кодировать все переключатели на true или false. Аргумент по умолчанию - false, и любой, который явно не установлен при вызове функции, будет установлен как таковой.

Просто установите тот, который вам нужен, чтобы быть правдой, как истину. Когда вы это сделаете, убедитесь, что это также третий аргумент.

0 голосов
/ 05 октября 2011

В функции tep_draw_radio_field() единственным обязательным параметром является переменная имени, которую будет использовать переключатель.

Остальные аргументы являются необязательными и для них уже установлены значения по умолчанию .

Вам не нужно кодировать все переключатели на true или false.,Аргумент по умолчанию - false, и любой, который явно не установлен при вызове функции, будет установлен следующим образом.

Просто установите тот, который вам нужен, чтобы быть истинным, как true.Когда вы это сделаете, убедитесь, что это также третий аргумент.

0 голосов
/ 05 октября 2011

Вы могли бы ужесточить оператор 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; 

}   
0 голосов
/ 05 октября 2011

Почему бы просто не сделать что-то подобное?

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;
}
...