0

以下のコードでは、内破と爆発を使用し、各質問のオプション タイプを見つけることで、完全なオプション タイプから個々のオプションを取得しようとしています。

たとえば、次のようになります。

A-E作りますA B C D E

A-C作りますA B C

True or False作りますTrue False

Yes or No作りますYes No

これは以下のコードで動作します。

<?php

  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);
      }
      return implode(" ", $options);
    }

foreach ($arrQuestionId as $key=>$question) {

    ?>

    <div class='lt-container'>

    <p><?php echo htmlspecialchars($arrQuestionNo[$key]) . ": " .  htmlspecialchars($arrQuestionContent[$key]); ?></p>



    <p><?php echo ExpandOptionType(htmlspecialchars($arrOptionType[$key])); ?></p>


    </div>


    <?php

    }

    ?>

しかし、私がやりたいのは、個々のオプションを文字列だけで表示するだけでなく、チェックボックスとして表示したいということです。しかし、以下の私の試みはうまくいきませんでした。チェックボックスを表示するにはどうすればよいですか? 実際に次のような警告が表示されます。Warning: explode() expects parameter 3 to be long, string given in ... on line 241

 function ExpandOptionType($option) { 
        $options = explode('-', '<input type=\"checkbox\" name=\"anstype\" class=\"answers\" id=\"answer".$option."\" name=\"answerName[$option]\" value=\"$option\" />', $option);
 //LINE 241
      if(count($options) > 1) {
        $start = array_shift($options); 
        $end = array_shift($options);
        do {
          $options[] = $start;
        }while(++$start <= $end);
      }
      else{
          $options = explode(' or', '<input type=\"checkbox\" name=\"anstype\" class=\"answers\" id=\"answer".$option."\" name=\"answerName[$option]\" value=\"$option\" />', $option);

      }
      return implode(" ", $options);
    }
    ?>
4

0 に答える 0