私はこれをやっています:
$sql_glassware = 'SELECT id, name FROM glassware';
$qry_glassware = $con->query($sql_glassware);
$get_glassware = $qry_glassware->fetchAll(PDO::FETCH_ASSOC);
debug($get_glassware);
debug()
個人的な機能です。次のような結果が返されます。
$get_glassware = array(19) {
[0]=>array(2) {
["id"]=>string(1) "1"
["name"]=>string(8) "Cocktail"
}
[1]=>array(2) {
["id"]=>string(1) "2"
["name"]=>string(9) "Margarita"
}
[2]=>array(2) {
["id"]=>string(1) "3"
["name"]=>string(8) "Highball"
}
...
}
最初の配列レベルは行で、2 番目のレベルは列だと思います。
IDを文字列として返す理由がわかりません...
次に、クラスを使用して完全なフォームを作成しています。addSelect()
最初の引数が値の配列を取り、オプション リストを作成するパブリック関数を呼び出します。内部で -looparray('name0','name1', 'name2','...')
を実行します。foreach()
public function addSelect($opt=array(),$param=array())
$name = $this->useEither($param['name'],'dropdown-list'); // useEither() is a personal function
foreach ($opt as $val => $name){
$options .= '<option value="'.$val.'">'.$name.'</option>';
}
$select = '<select name="'.$name.'" '.$param['string'].'>'.$options.'</select>';
$this->formElements[] = $select; // store the list for use later
}
この小さな関数を書き直し$get_glassware
て、関数の最初の引数に直接渡し、次のようなオプションを出力させるにはどうすればよいですか。
<option value="1">Cocktail</option>
<option value="2">Margarita</option>
<option value="3">Highball</option>