【发布时间】:2017-05-17 06:01:10
【问题描述】:
我正在做一个项目,如果我尝试搜索查询,它会显示结果,但如果我尝试通过相同的 URL 访问同一页面,它会显示空白页面。任何帮助将不胜感激。谢谢!
我的控制器
这是我的搜索功能
public function search($keyword = "default", $city = "NULL")
{
$keyword = $this->input->get();
$data['city_name'] = $keyword['city'];
$data['service_name'] = str_replace('-',' ',$keyword['search']);
//echo "<pre>";print_r($data); die('kk');
// get sponsor data by city
$data['sponsor'] = $this->Home_model->getSponsor($keyword['city']);
$data['packercontent'] = $this->Home_model->getPackerContent($keyword['city']);
$data['packers'] = $this->Home_model->get_results($keyword);
//echo "<pre>";print_r($keyword);die;
$data['info'] = $this->Home_model->getSiteInfo();
$data['page'] = '';
$this->load->view('viw_packers', $data);
}
我的模态
// get all packers according to city
public function get_results($keyword = 'default')
{
$this->db->select('*');
$this->db->like('service', str_replace('-',' ',$keyword['search']));
$this->db->where('city', $keyword['city']);
$query = $this->db->get('pf_package');
return $query->result();
}
// get all sponsor according to city
public function getSponsor($city)
{
$this->db->select('*');
$this->db->where('sp_city',$city);
$this->db->from('pf_sponsor');
$query = $this->db->get();
return $query->row();
}
// get all packer content according to city
public function getPackerContent($city)
{
$this->db->select('*');
$this->db->where('city',$city);
$this->db->from('pf_packers_content');
$query = $this->db->get();
return $query->row();
}
我的视图文件
<form class="form-inline" id="myForm" method="get" action="">
<div class="form-group row nomargin">
<div class="servicewrap col-lg-5 col-md-5 col-sm-5 col-xs-12 nopadding">
<select class="form-one-class" name="search" id="service">
<option value="moving-locally">Moving Locally</option>
<option value="moving-overseas">Moving Overseas</option>
<option value="corporate-relocation">Corporate Relocation</option>
<option value="commercial-relocation">Commercial Relocation</option>
<option value="packaging-services">Packaging Services</option>
<option value="storage-services">Storage Services</option>
</select>
</div><!-- /.servicewrap -->
<div class="citywrap col-lg-5 col-md-5 col-sm-5 col-xs-12 nopadding">
<input type="text" class="form-control" id="city" name="city" autocomplete="off" placeholder="select city">
<div id="category-suggestions">
<div class="suggestions col-xs-12" id="category-autoSuggestionsList">
</div>
</div>
</div><!-- /.citywrap -->
<div class="buttonwrap col-lg-2 col-md-2 col-sm-2 col-xs-12 nopadding">
<button type="submit" class="btn btn-default" id="search-button" >search</button>
</div><!-- /.buttonwrap -->
</div>
</form>
这是我的 js 代码
我通过 js 调用我的搜索表单操作。
<script>
$(document).ready(function(){
$("#search-button").click(function(e){
var city = $("#city").val();
var lowerCity = '-'+city.toLowerCase();
document.getElementById("myForm").action = "<?php echo base_url('search/packers-and-movers-in'); ?>"+lowerCity;
});
});
</script>
【问题讨论】:
-
很简单,因为你使用的是post请求,如果你直接点击url,你的
$_POST是空的,你只会得到空白页。尝试使用$_GET参数代替$_POST,你会得到结果。 -
感谢@kishor10d 的回复。我会试试这个。
-
@kishor10d 现在可以工作了,但我想显示这样的网址 localhost/profilehome/search/packers-and-movers-in-jaipur,而不是 localhost/profilehome/search/…
-
现在我想从我的网址中删除这个 ?search=moving-locally&city=Jaipur
-
我认为你弄错了框架,它支持漂亮的 url,而不是查询字符串,直到你更改配置。你可以通过漂亮的网址来做这件事。您只需从 url 串行获取输入,然后将它们发送到查询中比较 localhost/profilehome/search/packers-and-movers-in-jaipur/…
标签: forms codeigniter search