【问题标题】:Display search result from multiple dropdown selection显示来自多个下拉选择的搜索结果
【发布时间】:2018-06-19 16:06:46
【问题描述】:

我想显示来自多个下拉选择的搜索结果。我有 4 个下拉菜单。我有一个提交按钮,但是当我单击该提交按钮时,我仍然对如何显示搜索结果感到困惑。我想根据下面 mymodel.php 中的查询显示“courseplace”表中的“institution”和“address”列,并在不匹配时显示“No Results” .我想在http://www.bhinneka.com/category/notebook___laptop_gaming.aspx 上显示搜索结果(机构图片、机构名称和地址)。

我需要新页面来显示搜索结果吗?

我尝试了很多方法,但仍然失败:(

非常感谢您的回答!

以下是我的代码(使用 Codeigniter):

Controller.php

class Controller extends CI_Controller 
{
    public function index()
    {
    $this->load->view('home');
    }
}

mymodel.php

class Mymodel extends CI_Model 
{
public function getinstitution() 
    {
    include('application/views/home.php');
    $institution = $_POST['DropdownInstitution'];
    $course = $_POST['DropdownCourse'];
    $location = $_POST['DropdownLocation'];
    $price = $_POST['DropdownPrice'];

    $this->db->select('*');
    $this->db->from('courseplace');
    $this->db->where('1 = 1');
    if ($institution != '') {
        $this->db->where('institution', $institution);
    }
    if ($course != '') {
        $this->db->where('course', $course);
    }
    if ($location != '') {
        $this->db->where('location', $location);
    }
    if ($price != '') {
        $this->db->where('price', $price);
    }
    $data = $this->db->get()->result_array();
    return $data;
    }
}

home.php

<div class="MenuSearching" id="Searching">
<form action="" method="post">
<div class="Menu1" id="Menu1">
    <p> Lembaga</p>
        <div style="margin-top:-20px;margin-left:-2px;">
            <select name="DropdownInstitution" autofocus required id="DropdownInstitution">
                <option value="no" selected="selected">---Choose one---</option>
                <option value="FlashCom">FlashCom</option>
                <option value="InterNusa">InterNusa</option>
                <option value="HexaCompare">HexaCompare</option>
            </select> 
        </div>
</div>
<div class="Menu2" id="Menu2">
    <p> Paket Kursus</p>
        <div style="margin-top:-20px;margin-left:-2px;">
            <select name="DropdownCourse" autofocus required id="DropdownCourse">
                <option value="no" selected="selected">---Choose one---</option>
                <option value="web">Kursus Web Design</option>
                <option value="flash">Kursus Flash Animation</option>
                <option value="marketing">Kursus Internet Marketing</option>
            </select> 
        </div>
</div>
<div class="Menu3" id="Menu3">
    <p> Lokasi</p>
        <div style="margin-top:-20px;margin-left:-3px;">
            <select name="DropdownLocation" autofocus required id="DropdownLocation">
                <option value="no" selected="selected">---Choose one---</option>
                <option value="timur">Surabaya Timur</option>
                <option value="barat">Surabaya Barat</option>
                <option value="utara">Surabaya Utara</option>
                <option value="selatan">Surabaya Selatan</option>
            </select> 
        </div>
</div>
<div class="Menu4" id="Menu4">
    <p> Harga</p>
        <div style="margin-top:-20px;margin-left:-2px;">
            <select name="DropdownPrice" autofocus required id="DropdownPrice">
                <option value="no" selected="selected">---Choose one---</option>
                <option value="harga1"> kurang dari Rp.750.000</option>
                <option value="harga2">Rp.750.000 - Rp.1.500.000</option>
                <option value="harga3">Rp.1.500.000 - Rp.2.500.000</option>
                <option value="harga4">lebih dari Rp.2.500.000</option>
            </select> 
        </div>
</div>
<div>
<input name="submitbutton" type="submit" id="submitbutton" formmethod="POST" value="Submit">
</div>
</form>

【问题讨论】:

  • 为什么在“mymodel.php”中包含 home.php 视图文件,并且在模型中获取发布数据?我想你没有得到,因为你没有将 POST 数据从控制器传递到模型。
  • 我想从home.php获取其他变量(例如:DropdownInstitution)到mymodel.php,对吗?
  • 不,这不是办法。 POST 数据应该从视图(根据您的需要通过 AJAX 或 FORM SUBMIT)传递到控制器并从控制器传递到模型。然后模型的结果需要返回给控制器并从控制器返回到视图。
  • 如何通过呢?对不起,我还是初学者:(
  • 这可能会对您有所帮助。 technicalkeeda.com/jquery/…。从他们的官方网站下载 jquery 最新文件并使用它而不是提到的 url 中给出的内容

标签: php html mysql codeigniter drop-down-menu


【解决方案1】:

您可以使用 jQuery + Ajax 来解决这个不刷新问题。 在您的 home.php 文件中,向您的控制器发送请求,模型将数据返回给控制器后,数据将附加到您的网页上。

【讨论】:

    【解决方案2】:

    我建议您浏览模型、视图和控制器的 codeigniter 演示。 请检查以下代码

    Controller.php

    //make a call to getinstitution function
    //load our Mymodel class defined in mymodel.php
    //call your view home     
    
    
    
        class Controller extends CI_Controller 
        {
            public function __construct() {
                parent::__construct();
                $this->load->model('Mymodel');
            }
    
            public function index()
            {
                $params = array(
                'DropdownInstitution' => $this->input->post('DropdownInstitution'),
                'DropdownCourse' => $this->input->post('DropdownCourse'),
                'DropdownLocation' => $this->input->post('DropdownLocation'),
                'DropdownPrice' => $this->input->post('DropdownPrice'),            
                );
    
            $data['result'] = $this->mymodel->getinstitution($params);     
            $this->load->view('home',$data);
            }
    
        }
    

    mymodel.php //不需要包含('application/views/home.php');//

        class Mymodel extends CI_Model 
        {
        public function getinstitution($params) 
            {
    
            $institution = $params['DropdownInstitution'];
            $course = $params['DropdownCourse'];
            $location = $params['DropdownLocation'];
            $price = $params['DropdownPrice'];
    
            $this->db->select('*');
            $this->db->from('courseplace');
            $this->db->where('1 = 1');
            if ($institution != '') {
                $this->db->where('institution', $institution);
            }
            if ($course != '') {
                $this->db->where('course', $course);
            }
            if ($location != '') {
                $this->db->where('location', $location);
            }
            if ($price != '') {
                $this->db->where('price', $price);
            }
            $data = $this->db->get()->result_array();
            return $data;
            }
        }
    

    home.php
    请添加以下代码以查看 home.php

        <div>
        <?php if(!empty($result)){
            foreach($result as $value){ ?>
            <?php echo $value ?>
        <?php    }   
        }else{ 
            echo 'No results';
            } ?>        
        </div><!--Result div-->
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-29
      • 2020-03-13
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多