根据类别下拉列表AJAX显示数据库中的标题

时间:2015-09-08 14:31:33

标签: php jquery ajax codeigniter

我有一张表格如下:

id | page_name | category 
--------------------------
1  | Tornado   | Air     
2  | Car       | Vehicles 

下拉列表(HTML):

<select id="dropdown_categories">
  <option value="Air">Air</option>
  <option value="Vehicles">Vehicles</option>
</select>

我希望当我选择Air时,我只会看到结果1(Tornado)。 试过这样的事情:

控制器:

    public function Get_Page_By_Category ( $category ) {
    $data['pages_cat'] = $this->page_model->get_page_by_category($category);
}

模型:

     function get_page_by_category ( $category ) {

     $this->db->select('*')->from('page')->where('page.category =', $category);
     $result = $this->db->get();

     return $result;
 }

AJAX:

<script type="application/javascript">

$(document).ready(function() {
    $("#dropdown_categories").change(function(){
        alert($('#dropdown_categories option:selected').val());
    })
});
</script>

不确定如何继续,最好的方法是什么?

2 个答案:

答案 0 :(得分:1)

你应该使用ajax。试试这样。

  $(document).ready(function() {
    $("#dropdown_categories").change(function(){
       var val = $('#dropdown_categories option:selected').val();    
        $.ajax({
            url: "path to controller function/value of select box present in var val",
            type: "POST",
            dataType: "HTML",
            async: false,
            success: function(data) {
                  alert(data)                  
      }
  }); 

 });
});

在控制器中你可以回显值,这将成为ajax在数据变量中的成功,我已经在那里发出警报,你可以使用你想要的甚至

答案 1 :(得分:0)

您正在使用jQuery,因此您可以使用jQuery ajax。这很简单。您可以使用:

var val = $('#dropdown_categories option:selected').val();
$.ajax({
  url: "url",
  type: "POST",
  dataType: "application/json,"
  data: {value: val, callback: php_function_to_call, args: [array_of_arguments_of_php_function]}
  success: function(data){
    document.title = data.title;
  }
})

现在是php:

function myFunction($arguments_if_you_have){
    //get the databse result here;
    //notice: ajax only returns data, when there is something sent to the output stream, so we must use echo
    echo json_encode($result);
}
if(isset($_POST['callback'])){

    if(isset($_POST['args'])){
        call_user_func_array($_POST['callback'], $_POST['args']);
    }
    call_user_func_array($_POST['callback'], array());

}