基于类别下拉式AJAX从数据库显示标题


Display title from database based on category dropdown AJAX

我有一个表,看起来像:

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>

我想当我选择空气时,我只会看到结果1(龙卷风)。我试过这样做:

控制器:

    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>

不知道如何继续,最好的方法是什么?

您应该使用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的success中出现在data变量中,我已经提醒过了,你可以任意使用

你正在使用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());
}