1

すべての行を選択ボックスのオプションとして返そうとしていますが、最初の行のみが返されます

while($parent_cat = mysql_fetch_array( $result )) 

{
   return '<option value="'.$parent_cat['categoryid'].'">'.$parent_cat['title'].'</option>';
}

すべての行を返すにはどうすればよいですか?

4

2 に答える 2

2

いくつかの属性をパラメーターとして渡し、必要に応じて動的ドロップダウンを構築することで、以下の機能を拡張できます。

function showDropDown() {

   $html = '<select>';

   $i = 0;
   while (your loop condition) {
      $html .= '<option value="">Hello World</option>';
      $i++;
   }

   $html .= '</select>';

   //in case your loop fails return empty instead of drop down without options.
   return $i > 0 ? $html : '';

}

echo showDropDown();

上記の関数を使用する方法は次のとおりです。

  function buildDropDown(array $array, $attributes = array()) {
      if (! empty($array)) {
         $html = '<select ';
         foreach($attributes as $attr => $val) {
             $html .= $attr . '="' . $val . '" ';
         }

         foreach($array as $key => $value) {
             $html .= '<option value="'.$key.'">'.$value.'</option>';
         }

         $html .= '</select>';

         return $html;
      }
      return '';
  }

  $testArr = array(1 => 'A', 2 => 'B', 3 => 'C'); 
  $attrs = array(
            'id' => 'hello', 
            'name' => 'hello', 
            'style' => 'background-color: blue'
           )
  echo buildDropDown($testArr, $attrs);

上記は以下を生成します:

 <select id="hello" name="hello" style="background-color:blue">
    <option value="1">A</option>
    <option value="2">B</option>
    <option value="3">C</option>
 </select>
于 2013-03-22T19:41:35.633 に答える