2015-06-19 83 views
0

我有一個視圖它有一個AJAX POST到控制器list_products_of_company如何從AJAX POST請求調用控制器時從Codeigniter中的控制器加載視圖?

$('select.product_dimension').change(function() { 
    var a = "a"; 
    var b = "b"; 
    $.post("<?php echo base_url(); ?>home/list_products_of_company", 
      { 
       a : a, b : b 
      }  
) 
}); 

控制器

function list_products_of_company(){ 
     $a = $this->input->post('a'); 
     $b = $this->input->post('b'); 
     $this->data['products_of_company'] = $this->Home_model->get_products_of_company($a,$b); 
     $this->load->view('product_list',$this->data); 
} 

如何加載與我得到的數據視圖從數據庫?

編輯:

我不想加載DIV中的Ajax響應。我需要將整個視圖頁面加載到窗口中。

+0

負載,因爲它是和AJAX獲取數據的視圖。那就是我們所說的優化 –

回答

1

如果你想從你的CodeIgniter控制器加載視圖這裏不使用AJAX,而不是我建議您修改HTML這樣的:

<form id="form" method="post" action="action.php"> 
    <select name="select" id="select"> 
     <option value="">Select</option> 
     <option value="1">One</option> 
     <option value="2">Two</option> 
    </select> 
    <input type="submit" style="visibility:hidden;" name="sub" value="submit" /> 
</form> 

而且像這樣的jQuery代碼,這樣就可以直接提交選擇框的變化形式和行動去CI控制器:

$(function() { 
    $('#select').change(function() { 
     $('#form').submit(); 
    }); 
}); 

而且你的CI家居控制器:

function list_products_of_company(){ 
     $a = $this->input->post('a'); 
     $b = $this->input->post('b'); 
     $this->data['products_of_company'] = $this->Home_model->get_products_of_company($a,$b); 
     $this->load->view('product_list',$this->data); 
} 
+0

@arshad謝謝你接受我的回答,我希望你的問題現在已經解決了,如果你有任何疑問可以通過我的堆棧溢出聊天室來運行。 –

+0

謝謝你的幫助人。你遲到了,但這是我的問題的解決方案。 – arshad

0
$('select.product_dimension').change(function() { 
    $.ajax({ 
    type: 'POST', 
    url: "<?php echo base_url(); ?>home/list_products_of_company", 
    dataType: 'text', 
    success: 
     function(data){ 
     //change the id to your div id. where you want to load the view 
     $('#yourdivid').html(data); 
     } 
    }); 
}); 

我認爲這將有助於

0

你需要更新你的HTML作爲響應每。比如說你想要回覆在div中設置的ID爲container。你可以做如下

<div id="container"></div>

$('select.product_dimension').change(function() { 
    var a = "a"; 
    var b = "b"; 
    // This will 
    $("#container").load("<?php echo base_url(); ?>home/list_products_of_company", 
      {a : a, b : b});  
}); 
+0

我想要一個頁面重定向,就像我們在CI中所做的那樣。那可能嗎? – arshad

+0

你可以在javascript中使用'window.location ='http://yoururl.com''進行頁面重構 – jagad89

+0

「url」是問題...如果我使用window.location加載url,數據將不會得到添加到頁面... – arshad

相關問題