創建此表單。重複每個產品類型的字段集(這個例子中示出的T恤):
<form method="post" action="url/to/find_products">
<!-- repeat for all product types -->
<fieldset>
<input type="checkbox" name="products[tshirt][active]" value="1" /> Tshirt
<fieldset>
<input type="checkbox" name="products[tshirt][size]" value="s" /> S
<input type="checkbox" name="products[tshirt][size]" value="m" /> M
<input type="checkbox" name="products[tshirt][size]" value="l" /> L
</fieldset>
</fielset>
<!-- end repeat -->
</form>
「有效」鍵沒有被使用,但它確保當選擇任何選項存在producttype鍵。
無論您對每種產品類型使用單獨的表格還是將它們全部放在一個表格中,控制器方法都會有所不同。由於第一個更困難,在這裏:
function find_products() {
$products = $this->input->post('products');
$results = array();
foreach ($products as $product => $options) {
$table_name = $product."s";
$query = $this->db->from($table_name);
if (count($options['size']) > 0) {
$query->where_in('size', $options['size']);
}
$results = array_merge($results, $query->get());
}
return $results; # Or display view, or whatever.
}
請注意:這是非常不安全的。確保用戶的輸入有效。
非常感謝!最終我需要的東西比我發佈的例子還要多,但是這讓我開始了! – Robert