0

以下のコードは、完全なオプションタイプで個々のオプションを取得します。したがって、たとえば$ optionがADの場合、explodeを使用することにより、ABCDを出力するための個々のオプションを表示できます。

この例では、ABCDにそれぞれ独自のチェックボックスを設定します。Aただし、以下のコードでは、AとDのチェックボックスを作成しているだけです。これは、、、、、の場合の最初と最後のBオプションCですD。これはどのように行うことができますか?

function ExpandOptionType($option) { 
    $options = explode('-', $option);
    foreach($options as $indivOption) {
        echo '<p><input type="checkbox" name="options[]" id="option-' . $indivOption . '" value="' . $indivOption . '" /><label for="option-' . $indivOption . '">' . $indivOption . '</label></p>';
    }
    if(count($options) > 1) {
        $start = array_shift($options);
        $end = array_shift($options);
        do {
            $options[] = $start;
        }while(++$start <= $end);
     }
     else{
        $options = explode(' or ', $option);
     }
     return implode(" ", $options);
}
4

2 に答える 2

1

さて、私はif-elseあなたの関数で何をするのかよくわかりませんが、これはあなたが考えていることですか?

<?php foreach (range('A','D') as $letter): ?>
  <p>
    <input type="checkbox" name="options[]" id="option-<?php echo $letter ?>" value="<?php echo $letter ?>" />
    <label for="option-<?php echo $letter ?>"><?php echo $letter ?></label>
  </p>
<?php endforeach ?>

または、関数内:

function ExpandOptionType($from, $to) {
    $output = '';
    $range = range($from, $to);
    foreach ($range as $letter) {
        $output .= '<p>';
        $output .= "<input type=\"checkbox\" name=\"options[]\" id=\"option-{$letter}\" value=\"{$letter}\" />";
        $output .= "<label for=\"option-{$letter}\">{$letter}</label>";
        $output .= '</p>';
    }
    return $output;
}
echo ExpandOptionType('A', 'D');
于 2013-02-08T04:16:22.183 に答える
1
function ExpandOptionType($option) { 
    $options = explode('-', $option);
    if(count($options) > 1) {
        $start = array_shift($options);
        $end = array_shift($options);
        do {
            $options[] = $start;
        }while(++$start <= $end);
     }
     else{
        $options = explode(' or ', $option);
     }
     foreach($options as $indivOption) {
         echo '<p><input type="checkbox" name="options[]" id="option-' . $indivOption . '" value="' . $indivOption . '" /><label for="option-' . $indivOption . '">' . $indivOption . '</label></p>';
     }
     return implode(" ", $options);
}

このようにして、最初にオプション配列を変更してから、チェックボックスを作成します。

于 2013-02-08T07:20:05.630 に答える