使用codeigniter中的ajax从另一个页面获取值

时间:2016-08-26 10:39:11

标签: javascript php jquery ajax codeigniter

我在索引页面上有一个foreach循环,它显示了几个id的列表,并且在每个id前面有一个链接(名为detail),它只与该id相关。

索引页面上的代码是

<?php if($request_detail): ?>
    <?php foreach($request_detail as $request): ?>
        <?php echo $request->requestid; ?>
        <a id="link" href="<?php echo base_url(); ?>recruiter/getrequestdetail/<?php echo $request->requestid; ?>"> Details </a>
    <?php endforeach; ?>              
<?php endif; ?>

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

<script type="text/javascript">
    $("#link").click(function(e) {
      e.preventDefault(); 
      $.ajax({
        type: "get",
        url: "<?php echo base_url(); ?>recruiter/getrequestdetail/<?php echo $request->requestid; ?>",
        success: function(data) {
          $('#container').html(data); 
        }
      });
    });
</script>

我从上面的代码得到的视图是

1  details
2  details
3  details

当用户点击详细信息链接时,我希望仅从另一个页面获取该ID的数据并将其显示在特定div下。

控制器

public function getrequestdetail($id)
        {
            $data['request_data'] = $this->recruiter_model->get_request_data($id);
            $this->load->view('recruiter/request_data_view',$data);
        }

模型

public function get_request_data($requestid)
    {
        /* query is getting executerd here */

            return $query->result();
    }       

问题是,如果我点击第一个详细信息正在传递的ID 3,当我点击其他详细信息时,它会被重定向到另一个页面并且具有id 3

但我想要的是那个

  

当用户点击1前面的详细信息时,id 1的数据应该显示在同一页面的容器div中,

     

当用户点击2前面的详细信息时,id 2的数据应该显示在同一页面的容器div中,

     

当用户点击3前面的详细信息时,id 3的数据应显示在同一页面的容器div中,

任何人都可以告诉我们该怎么做

2 个答案:

答案 0 :(得分:2)

其他人是否可以拥有驾驶执照号码或与您相同的护照号码。因为他们是身份,身份总是独一无二的。那么如何使所有链接具有相同的ID,因为它们来自foreach循环。

您必须使用类作为链接。而且你将最后一个ID(最后一次foreach迭代)传递给你的ajax调用。

<?php if($request_detail): ?>
    <?php foreach($request_detail as $request): ?>
        <?php echo $request->requestid; ?>
        <a class="link" href="<?php echo base_url(); ?>recruiter/getrequestdetail/<?php echo $request->requestid; ?>"> Details </a>
    <?php endforeach; ?>              
<?php endif; ?>


$(".link").click(function(e) {
      e.preventDefault(); 
      var url = $(this).attr('href');
      $.ajax({
        type: "get",
        url: url,
        success: function(data) {
          $('#container').html(data); 
        }
      });
    });

答案 1 :(得分:0)

更正您的控制器

$this->load->view('recruiter/request_data_view',$data);
$data = $this->load->view('recruiter/request_data_view',$data, true);
return $data;