如何通过POST从选择数据表的选项中获取价值,其中

我需要获取用于选择数据表的选项值$user_id

$user_id替换为数字''可以正常运行,但是我需要在列表选项中选择$user_id才能生成

非常感谢,如果我的英语不好,对不起!

视图

    <?php
$v = "";
if ($this->input->post('date_range')) {
    $dr = explode(' - ',$this->input->post('date_range'));
    $v .= "&start_date=" . $dr[0];
    $v .= "&end_date=" . $dr[1];
}
?>


<div class="panel-body">
            <?php echo form_open("panel/reports/repairbyuser"); ?> 
<div class="form-group">
                    <?=lang('cuanhanvien','cuanhanvien');?>
                        <div class="input-group">
<div class="input-group-addon">
<i class="fa  fa-user"></i>
                            </div>
                                <select required id="user_id" name="user_id" class="form-control user_id"  style="width: 100%">
                                    <option value=""><?=lang('chonnhanvien'); ?></option>
<?php
                                        foreach($users as $user){
                                            echo '<option value="'.$user->id.'">'.$user->first_name . ' ' . $user->last_name .'</option>';
                                        }
                                    ?>
                                </select>
                        </div>
                </div>
<div class="form-group">
                    <?=lang('report_Status','report_Status');?>
                        <div class="input-group">
                            <div class="input-group-addon">
                                <i class="fas fa-money-bill-alt"></i>
                            </div>
                                <select required id="status" name="status" class="form-control status" style="width: 100%">
                                    <option value=""><?=lang('chontinhtrang'); ?></option>
<option value="1"><?=lang('delivered_user'); ?></option>
                                  <option value="2"><?=lang('inprogress_user'); ?></option>
                                </select>
</div>
</div>

<div class="form-group">
                    <?= lang('date_range','date_range'); ?>
                        <input class="form-control" type="text" name="date_range" class="date_range" id="date_range" value='<?= set_value('date_range'); ?>'>
                </div>
                <div class="form-group">
                    <div class="controls">
<?php echo form_submit('submit',$this->lang->line("submit_draw"),'class="btn btn-primary"'); ?>
</div>
                </div>
                    <?php echo form_close(); ?>

控制器

   function repairbyuser()
    {

$this->mPageTitle = lang('user_report_detail');
        $this->render('reports/repairbyuser');
    }
    function getrepairbyuser($pdf = NULL,$xls = NULL)
    {
        if ($this->input->get('start_date')) {
            $start_date = date('Y-m-d',strtotime($this->input->get('start_date'))) . " 00:00:00";
        } else {
            $start_date = date('Y-m-d 00:00:00');
        }
        if ($this->input->get('end_date')) {
            $end_date = date('Y-m-d',strtotime($this->input->get('end_date'))) . " 23:59:59";
        } else {
            $end_date = date('Y-m-d 23:59:59');
        }


$user_id = $this->input->post('user_id');


$status= $this->input->post('status');


$this->load->library('datatables');
            $this->datatables
                ->select("date_opening,code,date_closing,name,concat(reparation.category,' ',reparation.model_name) as tenmay,defect,(grand_total-total) as tiendvsc")
                ->from('reparation');
if ($status == NULL) {
$this->datatables->where('reparation.date_opening BETWEEN "' . $start_date . '" and "' . $end_date . '"')
->where('assigned_to','0');
} else if ($status == '1') {
$this->datatables->where('reparation.date_opening BETWEEN "' . $start_date . '" and "' . $end_date . '"')
->where('assigned_to',$user_id)
->where('date_closing is not null');

        } else if ($status == '2') {
$this->datatables->where('reparation.date_opening BETWEEN "' . $start_date . '" and "' . $end_date . '"')
->where('assigned_to',$user_id)
->where('date_closing is null');
}
            echo $this->datatables->generate();

}

如果子句可以正常运行,请尝试在控制器中分配$ user_id ='1',$ status ='1'。

b1004940 回答:如何通过POST从选择数据表的选项中获取价值,其中

  1. 您已将变量包装在单引号中,这将导致字符串$ user_id而不是其值。

所以改变

if ($start_date) {
  $this->datatables->where('assigned_to','$user_id')
                   ->where('date_closing is not NULL');
}

收件人(删除$ user_id周围的单引号)

if ($start_date) {
    $this->datatables->where('assigned_to',$user_id)
                     ->where('date_closing is not NULL');
}
  1. $start_date被分配到哪里?

$start_date是一个局部变量,我看不到它被设置了。您在哪里设置?

此刻,它将始终在您的IF语句中测试/评估为FALSE。

除非您在类中将其定义为属性并将其分配到其他位置,否则您将其称为$this->start_date

,
Try this.
/////In view////
<?php echo form_open("panel/reports/repairbyuser",array('method'=>'post')); ?>  
            <div class="form-group" >
                <?=lang('cuanhanvien','cuanhanvien');?>
                    <div class="input-group">
                        <div class="input-group-addon">
                            <i class="fa  fa-user"></i>
                        </div>
                            <select required id="user_id" name="user_id" onchange="this.form.submit() class="form-control" style="width: 100%">
                                <?php
                                    foreach($users as $user){
                                        echo '<option value="'.$user->id.'">'.$user->first_name . ' ' . $user->last_name .'</option>';
                                    } 
                                ?>
                            </select>
                    </div>
            </div>
本文链接:https://www.f2er.com/3169659.html

大家都在问