使用ajax使用不同的值重新加载页面

时间:2014-10-09 11:09:28

标签: javascript php jquery ajax codeigniter

我有一个页面,默认显示所有测试事件(初始页面视图)

我的控制器:

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。感谢

谢谢,抱歉打扰你们。

2 个答案:

答案 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"