Reputation: 495
Overflow community first post ever!
Currently i'm working on a project and have started to use PHP to dynamic insert pages.
At this point in time I have...
switch ($route) {
case 'step1':
include('./views/enrolment/mainstream/_step1.php');
include('./views/partials/_footer.php') ;
break;
case 'step2':
include('./views/enrolment/mainstream/_step2.php');
include('./views/partials/_footer.php') ;
break;
case 'step3':
include('./views/enrolment/mainstream/_step3.php');
include('./views/partials/_footer.php');
break;
case 'step4':
include('./views/enrolment/mainstream/_step4.php');
include('./views/partials/_footer.php');
break;
case 'step5':
include('./views/enrolment/mainstream/_step5.php');
include('./views/partials/_footer.php');
break;
case 'step6':
include('./views/enrolment/mainstream/_step6.php');
include('./views/partials/_footer.php');
break;
case 'step7':
include('./views/enrolment/mainstream/_step7.php');
include('./views/partials/_footer.php');
break;
This to means seems horrifically long and is better achieved through a for loop, however i'm a newbie to PHP and am entirely unsure of how I would go about implementing this idea.
Any other sugguestions without a the use of a for loop is also welcome!
Thanks guys!
Upvotes: 2
Views: 163
Reputation: 2419
You can check if that file exists using php's file_exists() fn
if(file_exists('./views/enrolment/mainstream/_'.$routes.'.php')) {
include('./views/enrolment/mainstream/_'.$routes.'.php');
include('./views/partials/_footer.php') ;
}
Handle the else part to suit your need.
Upvotes: 6
Reputation: 194
it is better to check the $route
value
if (in_array($route, range(1, 7))){
include('./views/enrolment/mainstream/_'.$route.'.php');
include('./views/partials/_footer.php') ;
} else {
//...error code
}
Upvotes: 0
Reputation: 781
for($i = 0; $i < 7; $i++){
if($route == "step" . $i){
include('./views/enrolment/mainstream/_step' .$i . '.php');
include('./views/partials/_footer.php');
break;
}
}
Upvotes: -1
Reputation: 2566
Just like @praveen said use:
include('./views/enrolment/mainstream/_'.$routes.'.php');
However you are duplicating:
include('./views/partials/_footer.php');
for each query, why not just have that in the page as static?
Upvotes: 0
Reputation: 2916
Why dont use $route
as variable to load file?
include("./views/enrolment/mainstream/_{$route}.php");
include('./views/partials/_footer.php') ;
Upvotes: 0
Reputation: 15351
How about
$i = 1;
$steps = 7;
for($i = 1; $i <= $steps; $i++) {
if($route === 'step' . $i) {
include('./views/enrolment/mainstream/_step' . $i . '.php');
include('./views/partials/_footer.php');
break;
}
}
Upvotes: -1
Reputation: 360
To reduce your code considerably:
include('./views/enrolment/mainstream/_step' . $route . '.php');
include('./views/partials/_footer.php');
Upvotes: 0
Reputation: 1465
Maybe this easy solution is good for you:
include('./views/enrolment/mainstream/_'.$route.'.php');
include('./views/partials/_footer.php');
Upvotes: 0