我有一个页面,默认显示所有测试事件(初始页面视图)
我的控制器:
public function testController()
{
$category = 0; //NEED TO BE CHANGED WHEN USER SELECTED TEST EVENT 2 AND GET ALL EVENTS (Category 2)
$getEventsBasedOnCategory = //DB QUERY TO GET ALL EVENTS (Category 0)
//Pass all events to view
}
我的HTML页面:
<select id = "event_filter">
<option value="" selected="selected" disabled>SELECT Event</option>
<option value="0">All Test Events</option>
<option value="2">Test Event 2</option>
</select>
我的ajax请求:
$("#event_filter").change(function(){
$.ajax({
url: '/site/example/displayEvents',
data: {
event_filter: $("#event_filter").val()
},
async: false,
type: 'POST',
success: function(data){
},
});
});
我的问题是如何将类别更改为2(如果用户在选择框中选择2)并再次从数据库请求并在网站上显示类别2的事件?
我顺便使用codeigniter。感谢
谢谢,抱歉打扰你们。
答案 0 :(得分:1)
抱歉我的英语不好。
首先,要在codeigniter中从发布中检索数据,请使用 $ this-&gt; input-&gt; post(&#39; event_filter&#39;)。
如果您正在调用&#39; / site / example / displayEvents&#39;,请在此功能&#34; displayEvents&#34;你必须在模型中调用该函数。
public function displayEvents(){
$data->variableToSend = $this->example_model->events_data($this->input->post('event_filter'));
$this->load->view('nameOfViewToDisplayData',$data);
}
视图是你的ajax调用的结果,然后你可以把它放在div中。
success: function(data){
$('#target_div').html(data);
},
答案 1 :(得分:0)
当您使用type:POST时,会将其发布到下一个站点: - )
我理解你的问题的方式,你需要$ category等于你的选择值。
我没有测试你的脚本,但他们就这样做了:
$category = 0;
if(isset($_POST['event_filter'])){
$category = $_POST['event_filter'];
}
然后只是一个简单的
"SELECT * FROM {your category} WHERE {your_row_category} = $categori"