Codeigniter - 从容器传递变量到视图时出错

时间:2016-03-21 11:32:50

标签: forms codeigniter templates codeigniter-3

您好我想在使用post方法单击按钮时传递输入元素值,并使用CI将值传递到下一个视图。在输入元素中提交带有值的按钮并重定向时效果很好。但是当我在重定向页面后刷新时,输入元素的值会丢失并显示空白页面/当值变为空时我显示的页面。

第一次观看

 <form action="<?php echo base_url() ?>Mapcontrol/display_garage_by_location" method="post">
                     <div class="section_1">
                         <select id="cmbcity" name="cmbcity" class="frm-field required">
                            <option value="null">Select Your City</option>
                            <option value="1">fghfghfghf</option>
                            <option value="2">fghfghfgh</option>
                            <option value="3">fghfgh</option>         
                            <option value="4">ffffffff</option>
                            <option value="5">hhhh</option>
                            <option value="6">dddd</option>
                            <option value="7">treee</option>
                            <option value="8">kiu</option>
                         </select>
                      </div>                    

                    </div>


                    <div class="col-md-3 dropdown-button">                      
                        <div class="input-group">
                        <span class="glyphicon glyphicon-map-marker" aria-hidden="true"></span>
                        <input type="text" id="txtPlaces" placeholder="Enter a location" />     
                        <input type="hidden" id="city2" name="city2" />
                        <input type="hidden" id="cityLat" name="cityLat" />
                        <input type="hidden" id="cityLng" name="cityLng" />
                        </div>
                    </div>
                  <div class="col-md-3 dropdown-button">                    
                         <div class="section_1">
                         <select id="cmbvehicletype" name="cmbvehicletype" class="frm-field required">
                            <option value="null">Type</option>
                            <option value="cr">dd</option>         
                            <option value="mb">ghjghjd</option>
                            <option value="tk">ghjghj</option>
                            <option value="ar">hgjghj</option>
                            <option value="bi">gggh</option>
                            <option value="ov">gg</option>
                         </select>
                      </div>    
                    </div>
                    <div class="col-md-3 dropdown-button">
                      <div class="section_1">
                         <select id="cmbservice" name="cmbservice" class="frm-field required">
                            <option value="null">Select</option>
                            <option value="vr">vr</option>         
                            <option value="oc">oc</option>
                            <option value="br">br</option>
                            <option value="vs">vc</option>
                            <option value="sp">cc</option>
                            <option value="os">cd</option>
                         </select>
                      </div>
                    </div>
                    <div class="clearfix"> </div>
                </div> 
                <div class="col-md-2 submit_button"> 
 <input type="submit" id="searchindex" value="SEARCH"/>
                </div>
                <div class="clearfix"> </div>
            </div>
        </div>
    </div>

控制器

public function display_garage_by_location()
    {
        // Loading Library
        $this->load->library('googlemaps');
        //Initialize our map. Here you can also pass in additional parameters for customising the map
        $this->googlemaps->initialize();
        // Create the map. This will return the Javascript to be included in our pages <head></head> section and the HTML code to be 
       // placed where we want the map to appear.
       $data['map'] = $this->googlemaps->create_map();
       // Load our view, passing the map data that has just been created
       //$this->load->view('my_view', $data);
             $data['locationvalue']=$this->input->post('city2');
             $data['latvalue']=$this->input->post('cityLat');
             $data['longvalue']=$this->input->post('cityLng');
             $data['vehicleid']=$this->input->post('cmbvehicletype');
             $data['serviceid']=$this->input->post('cmbservice');
             $this->garage_location_markers($data);
    }

    public function garage_location_markers($data)
    {
             $this->load->view('templates/_header');
             $this->load->view('content/locations-in-marker-view',$data);
             $this->load->view('templates/footer'); 
    }

第二视图

//在第二个视图中我想显示位置值是否为空,然后显示no data found其他display search results ..

问题是当location不为null时会显示详细信息,但是当我再次刷新页面时,控制权返回控制器并且结果没有找到数据。如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

尝试这样

在视图中

<a href="<?php echo base_url();?>controllerName/FunctionName/<?php echo $id?>">View user</a>

在控制器中

public function FunctionName($id) # determine function that receiving incoming parameter 
{
    if (empty($id)) {
        echo "Token Missed Matched";
    }
    else{

        # get data from model
        $result = $this->model_name->model_function($id);

        if(empty($result))
        {
            echo "No data found";
        }
        else{
            $this->load->view('view_name');
        }           
    }
}