使用AJAX时无法加载Codeigniter中的View

时间:2014-05-14 01:40:34

标签: php ajax codeigniter

我在View加载Controller时遇到问题。我不知道为什么,但我认为我的代码是正确的。

首先,我有ViewAJAX的第一个POST the text of input field

<div class="alert alert-success">
   New JONumber for <b><span id="new_project_name"></span></b> is <b><span id="new_jo"> </span></b>.
</div>

$("#view").click(function()
{
    $.ajax({
        url : '<?php echo base_url('generator/view_generate')?>',
        type: 'POST',
        data: {
        name: $('#name').text()
              },
        success: function(){
        }
        });
});

然后它会将数据传递给Controller

public function __construct()
    {
        parent::__construct();

        $this->load->model('generator_models');
    }
public function view_generate()
{
    $name    =   $this->input->post('name');

    $view_generated = $this->generator_models->view_generate($name);
    $this->view_name($view_generated);
}
public function view_name($view_generated)
{
    $this->load->view('templates/header');
    $this->load->view('name_views', $view_generated);
    $this->load->view('templates/footer');
}

这是我的Model

function view_generate($name)
{
    $this->db->select('*');
    $this->db->from('user');
    $this->db->where('name', $name);
    $query = $this->db->get();

    return $query->row();
}

这是我的第二个View。这是不同的View文件:

<form class="form-horizontal" id="search-form" role="form" method="post">
<?php
    $view_name = $name;
    $view_id = $id;
?>
<div class="form-group">
<label for="name" class="col-sm-2 control-label emp">Name</label>
<div class="col-sm-10">
    <input type="text" class="typeahead form-control" id="name" placeholder="Name" name="name" autocomplete="off" value="<?php echo $view_jo_number; ?>"/>
</div>
</div>
<div class="form-group">
<label for="id" class="col-sm-2 control-label emp">ID</label>
<div class="col-sm-10">
    <input type="text" class="typeahead form-control" id="id" placeholder="ID" name="id" autocomplete="off" value="<?php echo $view_project_name; ?>"/>
</div>
</div>
</form>

从模型中收集数据后,它将继续执行函数($this->view_name($view_generated);)以调用View。 实际上,当我在Firefox中检查元素 - &gt; html但在浏览器页面中它不会进入View页面时它会起作用。 我不知道AJAX是否有问题,我应该拨打controller in success还是我的代码确实有问题?

1 个答案:

答案 0 :(得分:0)

我不确定你问的是什么但如果你想通过javascript加载视图,你就是这样做的:contents是将用数据填充的DIV的ID(在你的你的观点)。

$("#view").click(function()
var name = $('#name').text();
 $("#contents").load('<?php echo base_url('generator/view_generate/')?>'+name,
      function() {
        //console.log('success');   

    });