私は4つのドロップダウンを含む検索ページを持ち、それらに設定された値はデータベースのクエリに使用されます。私は値がモデルに渡されていることを確認するためにテストしましたが、データベースは空の配列を返しています。しかし、モデルのSQLクエリに値を直接入力すると、結果セットが返されます。以下は私のコードです。前もって感謝します。結果はcodeigniterモデルから空を返します
コントローラ
public function search(){
$this->form_validation->set_rules('state', 'State', 'required');
$this->form_validation->set_rules('city', 'City', 'required');
$this->form_validation->set_rules('minPrice', 'Minimum Price', 'required');
$this->form_validation->set_rules('maxPrice', 'Maximum Price', 'required');
if ($this->form_validation->run() == FALSE) {
$this->index();
}
else{
$state = $this->input->post('state');
$city = $this->input->post('city');
$minPrice = $this->input->post('minPrice');
$maxPrice = $this->input->post('maxPrice');
$data['hostel_search'] = $this->Hostel_model->search_hostels($state, $city, $minPrice, $maxPrice);
$this->load->view('_parts/header');
$this->index_top();
$this->load->view('search', $data);
$this->load->view('_parts/footer');
}
}
モデル
public function search_hostels($state, $city, $minPrice, $maxPrice){
$state = (int)$state;
$city = (int)$city;
$minPrice = (int)$minPrice;
$maxPrice = (int)$maxPrice;
$query = $this->db->query("SELECT * FROM `hostels` WHERE `state_id`='$state' AND `city_id`='$city' AND `price` BETWEEN '$minPrice' AND '$maxPrice'");
$this->db->from($this->table);
$result = $query->result();
return $result;
}
ビューステートID
$(document).ready(function(){
$('#state').change(function(){
$('#city').html('<option>Loading....</option>');
var state = $('#state').val();
if (state != "") {
$.get("<?php echo base_url(); ?>site/dependent_dropdown/"+state).success(function(data){
$('#city > option').remove();
data = JSON.parse(data);
for(var i in data){
$('#city').append("<option id='"+i+"' value='"+data+"'>"+data[i]+"</option>");
}
})
}
else{
$('#city').html('<option>--Select City--</option>');
}
});
});
01に返された値に基づいて都市を投入するために、このJavaScriptを使用して
<?php echo form_open('site/search'); ?>
<div class="col-sm-4">
<div class="form-group input-group">
<span class="input-group-addon"><i class="fa"><strong>State</strong></i></span>
<select id="state" name="state" class="form-control" required>
<option value="" selected>--Select State--</option>
<?php foreach ($state_option as $state_id => $state) { ?>
<option id="<?php echo $state_id; ?>" value="<?php echo $state_id; ?>"><?php echo $state; ?></option>
<?php } ?>
</select>
</div>
</div>
<div class="col-sm-4">
<div class="form-group input-group">
<span class="input-group-addon"><i class="fa"><strong>City</strong></i></span>
<select id="city" name="city" class="form-control" required>
<option id="" value="" selected>--Select City--</option>
</select>
</div>
</div>
<div class="col-sm-4">
<div class="form-group input-group">
<span class="input-group-addon"><i class="fa"><strong>Purpose</strong></i></span>
<select name="purpose" class="form-control" required>
<option value="" selected>--Select Purpose--</option>
<option value="rent">Rent</option>
<option value="let">Let</option>
</select>
</div>
</div>
<div class="col-sm-4">
<div class="form-group input-group">
<span class="input-group-addon"><i class="fa"><strong>Min Price</strong></i></span>
<select name="minPrice" class="form-control" required>
<option value="" selected>--Select Price--</option>
<option value="5000">5000</option>
<option value="7000">7000</option>
<option value="8000">8000</option>
<option value="9000">9000</option>
<option value="10000">10000</option>
</select>
</div>
</div>
<div class="col-sm-4 pull-center" >
<button class="btn btn-block btn-info btn-md" type="submit" style="margin-bottom:20px; background-color:#06F; border-radius:5px; border:none; position: relative;" id="search"><i class="fa fa-search"></i> Search</button>
</div>
<div class="col-sm-4">
<div class="form-group input-group">
<span class="input-group-addon"><i class="fa"><strong>Max Price</strong></i></span>
<select name="maxPrice" class="form-control" required>
<option value="" selected>--Select Price--</option>
<option value="50000">50000</option>
<option value="60000">60000</option>
<option value="70000">70000</option>
<option value="80000">80000</option>
<option value="100000">100000</option>
</select>
</div>
</div>
<?php echo form_close();?>
AM
そしてPlsは$this->index_top()
について心配しません。それはその目的に役立っています。
また、ビューコードを –
と追加してください。この '$ this-> index_top();'とは何ですか? –
@Abdulla、私はビューを追加しました。 – pimpace