woshidan's blog

そんなことよりコードにダイブ。

PHPの関数でセレクト要素を出力しようと思ったら <select></select><option>..</option><option>..</option><option>..</option> ... となる場合

正月全部潰しても、もう書き終わらない感じだから、

明日あたりに今の段階でコーディングに関して反省書いてしまおう。

これで、反省書いたあと同じことをやったらとっても面白いですよね。

 

<select>タグの中に<select>タグが入っているとそうなります。

この場合は、おかしいことが起こるのは当たり前でしょ、といわれたらそれはそうなんだけど、こういう形で、とかいうのは分からなかったので30分くらい右往左往。

 

おかしくなったときのコード

PHP

function get_options($ids){

    for($i =0;$i>count($ids);$i++){

          $options = @$options . <option value="'.$ids[$i].'">選択肢$i</option>';

     }

   //ここにうっかり<select>で挟む部分まで入れていた

  $select = '<select>'. $options .'</select>';

  return $select;

}

 

htmlを表示する用のPHP

$ids = array(0,1,2,3,4);

echo '<select>'.get_options($ids).'</select>';

 

出力結果

<select></select>

<option value="0">選択肢0</option>

<option value="1">選択肢1</option>

<option value="2">選択肢2</option>

<option value="3">選択肢3</option>

<option value="4">選択肢4</option>

 

訂正

PHP

function get_options($ids){

    for($i =0;$i>count($ids);$i++){

          $options = @$options . <option value="'.$ids[$i].'">選択肢$i</option>';

     }

  return $options;

}

 

出力結果

<select>

<option value="0">選択肢0</option>

<option value="1">選択肢1</option>

<option value="2">選択肢2</option>

<option value="3">選択肢3</option>

<option value="4">選択肢4</option>

</select>