How to use a switch
statement in a controller
$action = filter_input(INPUT_POST, 'action');
if ($action == NULL) {
$action = filter_input(INPUT_GET, 'action');
if ($action == NULL) {
$action = 'list_products';
}
}
switch ($action) {
case 'list_products':
$category_id = filter_input(INPUT_GET, 'category_id', FILTER_VALIDATE_INT);
if ($category_id == NULL || $category_id == FALSE) {
$category_id = 1;
}
$category_name = get_category_name($category_id);
$categories = get_categories();
$products = get_products_by_category($category_id);
include('product_list.php');
break;
case 'delete_products':
$product_id = filter_input(INPUT_POST, 'product_id', FILTER_VALIDATE_INT);
$category_id = filter_input(INPUT_POST, 'category_id', FILTER_VALIDATE_INT);
if ($category_id == NULL || $category_id == FALSE || $product_id == NULL || $product_id == FALSE) {
$error = "Missing or incorrect product id or category id.";
include('../errors/error.php');
} else {
delete_product($product_id);
header("Location: .?category_id=$category_id");
} break;
case 'show_add_form':
$categories = get_categories();
include('product_add.php');
break;
case 'add_product':
$category_id = filter_input(INPUT_POST, 'category_id', FILTER_VALIDATE_INT);
$code = filter_input(INPUT_POST, 'code');
$name = filter_input(INPUT_POST, 'name');
$price = filter_input(INPUT_POST, 'price');
if ($category_id == NULL || $category_id == FALSE || $code == NULL || $name == NULL || $price == NULL || $price == FALSE) {
$error = "Invalid product data. Check all fields and try again.";
include('../errors/error.php');
} else {
add_product($category_id, $code, $name, $price);
header("Location: .?category_id=$category_id");
}
break;
}
Back