Im making a website that works around a very basic MVC structure. I have three folders, the Model, View and Controller.
I want to display the content of the database in the dropdown once the page has loaded.

My view has:

<div id="appCalc"> <form id="applianceCalc" method="POST" > <?php
                    foreach($error as $error)
                        ?> <div class="alert alert-danger"> <?php echo $error; ?> </div> <?php
                Typical Appliance: 

                <select name="appliances"> 

            Power Consumption:
            <input id="powerCon" name="txtPower" type="text" required></input> <br>
            Hours of use per day:
            <input id="hoursPD" name="txtHours" type="text" required></input> 
            <input type="submit" name="btn-appCalc" value="Calculate">
            </input> <input type = "submit" value="Reset" onclick="reset();">

The select dropdown that i want populated is called "appliances"

My model currently has:


class AppCalc 
    public $dbconn;

    public function __construct()
        $database = new Database();
        $db = $database->dbConnection();
        $this->dbconn = $db;

    public function getApps(){
        $stmt = $dbconn->prepare("SELECT Appliance FROM appliances");
        $results = $stmt->fetchAll(PDO::FETCH_ASSOC);


getApps is the function that retreives the data from the database.

and my Controller currently has:


    $appPower = strip_tags($_POST['txtPower']);
    $appHours = strip_tags($_POST['txtHours']);

    if($appPower=="")   {
        $error[] = "Please Enter a Power Value";    
    else if($appHours=="")  {
        $error[] = "Please Enter the Number of Hours";  

Im really confused and not sure how im supposed to call the method into the view to display the values from the database in the dropdown.
Any help will be appreciated.


remember the view is the output sent to the browser
suppose you have an array of records

you can prepare a string for your options like this

foreach( $records as $k=>$v){
    $options.="<option value='$v'>$k</option>\n"

or put the cycle directly in the view (not a best practice)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.