Codeigniter / MYSQLを使用して、動的選択メニューからオプションの簡単なリストを出力しています。
コントローラ
$data['get_custom_fields'] = $this->db->query("
SELECT a.custom_field_name, a.custom_field_id,
GROUP_CONCAT('<option name=\"',c.custom_field_value_id, '\" value=\"', c.custom_field_value_id , '\">',c.custom_field_value_name , '</option>' ORDER BY c.custom_field_value_id ASC SEPARATOR ' ') as field_values
FROM projects_custom_fields a
JOIN projects_custom_fields_values c ON c.custom_field_id = a.custom_field_id
GROUP BY a.custom_field_id
ORDER BY c.custom_field_id ASC
");
ページを見る
<?php if($get_custom_fields->result_array()) { ?>
<?php foreach($get_custom_fields->result_array() as $fRow): ?>
<tr>
<td><label>Select <?php echo $fRow['custom_field_name']; ?></label></td>
<td><select name="custom_field_<?php echo $fRow['custom_field_id']; ?>">
<?php echo $fRow['field_values']; ?>
</select>
</td>
</tr>
<?php endforeach; ?>
<?php } ?>
selected
これは、別のテーブルから取得された特定のオプションにhtml属性を追加するまで、驚くほどうまく機能します。
$data['get_custom_reg'] = $this->db->query("
SELECT custom_field_id, custom_field_value_id
FROM projects_custom_fields_reg
WHERE project_id = $project_id
");
私自身と別の経験豊富なプログラマーは、これを達成するためにいくつかの方法で遊んでいます。
IFステートメントと組み合わせたカウンター付きの配列の使用(これはうまく機能しましたが、クエリ内でカウンターをインクリメントできませんでした)
フォールバックオプションは、GROUP_CONCATを使用し、複数のデータベース呼び出しといくつかのPHPステートメントを使用してコードを出力する単一のMYSQLクエリを取り除くことです。
私たちは本当にレンガの壁にぶつかったので、すべての助けをいただければ幸いです。
ありがとう
ティム