如何在Codeigniter中获取用户的ID?

时间:2015-10-01 06:30:04

标签: php codeigniter

这实际上非常简单,但我很困惑如何做到这一点: 我有经销商,可以请求X号用户管理。这样该值就会保存到数据库中。现在,当管理员登录时,他可以看到经销商的请求。像这样 : Requests

现在,管理员可以批准或拒绝该请求。如果他批准该请求,则代码会在映射到该代理商的users表中创建用户。 映射是使用名为Key的唯一字段完成的现在创建用户工作正常但我的问题是:

当我点击批准时,它会创建用户,但仅用于经销商机智id = 1.我想创建类似于我点击第一个记录时为第一个经销商创建用户以及第二个同样如上所述[这是根据图像]。 这是我的观点:

<?php if(count($users)): foreach($users as $user): ?>
<tr class="odd gradeX">
    <td><?php echo  $user->id; ?></td>
    <td><?php echo  $user->user_requested; ?></td>
    <td><?php echo  $user->key; ?></td>
    <td><?php echo  $user->date_requested; ?></td>
    <td><a href="reseller/create_user" class="btn btn-primary">Yes&nbsp<i class="glyphicon glyphicon-ok"></i></a></td>
    <td><a href="reseller/change_status" class="btn btn-danger">No&nbsp<?php echo'<i class="glyphicon glyphicon-trash"></i>';?></a></td>
    <td><a href="" class="btn btn-success"><?php echo  $user->status; ?></td>&nbsp</a></td>
</tr>

<?php endforeach; ?>
<?php else: ?>
<tr>
    <td colspan="3">There are no new Requests.</td>
</tr>
<?php endif; ?> 

控制器

public function create_user()
{
    $this->load->model('more_m');
    $id= $this->session->userdata('id');
    $rajan =$this->more_m->get(array('user_requested',$id));
    $request=$rajan->user_requested;        

    $this->load->model('reseller_m');

    $query=$this->db->select('key');
    $query=$this->db->get('reseller');

    if($query->num_rows() > 0)
    {
        $row = $query->row_array();
        $key= $row['key'];
    }

    for($i=1; $i<=$request;$i++)
    {

        $userdata=array('key'=>$key);

        $this->db->insert('users',$userdata);

    }

    $this->load->model('more_m');
    $id = $this->session->userdata('id');
    $this->db->set('status', "'approved'",FALSE);
    $this->db->where('id',$id);
    $this->db->update('user_request');

    redirect('admin/new_user');
}

我的错误是在我定义$ id的控制器中。当管理员登录他的ID时,我不知道如何根据记录获取经销商的ID。

2 个答案:

答案 0 :(得分:3)

使用Codeigniter

这么简单

您需要做的是传递带有URL的ID(您错误地使用base_url()以及指点控制器)

ex <td><a href="<?php echo base_url()?>reseller/create_user/<?php echo $user->key; ?>"

所以现在你的网址看起来像(假设id等于2)

  

http://localhost/<path to project>/reseller/create_user/2

控制器中的

function create_user($id)//So this know incoming Value to this
{
   //then in here
   echo $id; //this will show 2
   //Continue rest of your code with $id
}

答案 1 :(得分:2)

如果你想以php方式进行,你可以在你的网址中传递key并使用$this->uri->segment(n)

获取你的控制器中的密钥
   <?php if(count($users)): foreach($users as $user): ?>
    <tr class="odd gradeX">
        <td><?php echo  $user->id; ?></td>
        <td><?php echo  $user->user_requested; ?></td>
        <td><?php echo  $user->key; ?></td>
        <td><?php echo  $user->date_requested; ?></td>
        <td><a href="reseller/create_user/<?php echo  $user->key; ?>" class="btn btn-primary">Yes&nbsp<i class="glyphicon glyphicon-ok"></i></a></td>
        <td><a href="reseller/change_status" class="btn btn-danger">No&nbsp<?php echo'<i class="glyphicon glyphicon-trash"></i>';?></a></td>
        <td><a href="" class="btn btn-success"><?php echo  $user->status; ?></td>&nbsp</a></td>
    </tr>

    <?php endforeach; ?>
    <?php else: ?>
    <tr>
        <td colspan="3">There are no new Requests.</td>
    </tr>
    <?php endif; ?> 

如果你想要jquery + php而不是使用ajax。

添加值attr。按钮传递你的密钥。

<button id="some_id" value="YOURKEY">Click Me</button

这是您要更新的脚本:

<script> 
$('body').on('click',"#some_id", function(){ 
var key =$(this).attr("value"); 
//Now you got ur key you can use ajax to update and change location of page on success 
}); 
</script>