我有一个视图,其中有一个AJAX POST到控制器 list_products_of_company
:
$('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 :(得分: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);
}
答案 1 :(得分: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);
}
});
});
我认为这会有所帮助
答案 2 :(得分: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});
});