Javascript 使用CodeIgniter中的复选框生成特定行的excel报告

Javascript 使用CodeIgniter中的复选框生成特定行的excel报告,javascript,php,mysql,codeigniter,Javascript,Php,Mysql,Codeigniter,到目前为止,在我的代码中,我能够生成整个表的excel报告。我想使用复选框生成特定行的报告。我不能这样做,请帮我解决。 从查看功能中,我可以得到表格结果,我必须使用复选框从中生成特定行的excel报告。我在我的项目的最后阶段,请帮我解决这个问题 提前谢谢 控制器: public function exportExcelData($records) { $heading = false; if (!empty($records)) foreach ($record

到目前为止,在我的代码中,我能够生成整个表的excel报告。我想使用复选框生成特定行的报告。我不能这样做,请帮我解决。 从查看功能中,我可以得到表格结果,我必须使用复选框从中生成特定行的excel报告。我在我的项目的最后阶段,请帮我解决这个问题

提前谢谢

控制器:

public function exportExcelData($records)
{
    $heading = false;
    if (!empty($records))
        foreach ($records as $row) 
        {
            if (!$heading) 
            {
                echo implode("\t", array_keys($row)) . "\n";
                $heading = true;
            }
            echo implode("\t", ($row)) . "\n";
        }
}

public function fetchDataFromTable()
{
    $query =$this->db->get('jc_meeting_expense'); // fetch Data from table
    $allData = $query->result_array();  // this will return all data into array
    $dataToExports = [];

    //Export To Excel
    foreach ($allData as $data) 
    {
        $arrangeData['Name'] = $data['name'];
        $arrangeData['Employee ID'] = $data['employee_id'];
        $arrangeData['Category'] = $data['category'];
        $arrangeData['Placename'] = $data['place_name'];
        $arrangeData['No of Employees'] = $data['no_of_employees'];
        $arrangeData['Claimed Amount'] = $data['claimed_amount'];
        $arrangeData['Amount per head'] = $data['amount_per_head'];
        $arrangeData['Meeting Date'] = $data['meeting_date'];
        $arrangeData['Expense Bill'] = $data['expense_bill'];
        $arrangeData['Other Expense'] = $data['other_expense'];
        $arrangeData['Other Expense Amount'] = $data['amount'];

        $dataToExports[] = $arrangeData;
    }
    $today = date("d.m.y");
    // set header
    $filename = "Employee Name ".$today.".xls";
    header("Content-Type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=\"$filename\"");
    $this->exportExcelData($dataToExports);
}
查看

<table class="viewjcexpense">
 <thead>    
 <tr>
    <th>Select</th><th>Name</th><th>Employee ID</th> 
    <th>Category</th><th>Place Name</th><th>No Of Employees</th> 
    <th>Claimed Amount</th><th>Amount Per Head</th>
    <th>Meeting Date</th><th>Expense Bill</th><th>Other Expense</th> 
    <th>Amount</th>
 </tr>
 </thead>
 <tbody>

 <div class="scroll1">
 <?php foreach($query as $row): ?>
 <tr> 
    <td><input type="checkbox" id="checkbox" name="checkbox[]" value="<?php echo $row->name ?>"></td>  
    <td><?php echo $row->name; ?></td>
    <td><?php echo $row->employee_id; ?></td>
    <td><?php echo $row->category; ?></td>
    <td><?php echo $row->place_name; ?></td>
    <td><?php echo $row->no_of_employees; ?></td>
    <td><?php echo $row->claimed_amount; ?></td>
    <td><?php echo $row->amount_per_head; ?></td>
    <td><?php echo $row->meeting_date; ?></td>
    <td><?php echo $row->expense_bill; ?></td>
    <td><?php echo $row->other_expense; ?></td>
    <td><?php echo $row->amount; ?></td>
 </tr>
 <?php endforeach; ?>
 <tr>
    <td colspan="12" align="center">
        <p>
            <input type="submit" value="Generate Report" name="generatereport" formaction="<?php echo site_url('JcMeetingExpense/fetchDataFromTable'); ?>">
        </p>
    </td>
 </tr>
 </div>
 </tbody>
</table>

选择姓名员工ID
类别地点雇员姓名
声称每人的装量
会议日期费用账单其他费用
数量

只需在函数
fetchDataFromTable

差不多

public function fetchDataFromTable()
{
    $arrRows = $this->input->post('checkbox[]');
    if (!empty($arrRows))   $this->db->where_in('id', $arrRows);
    $query =$this->db->get('jc_meeting_expense');
    ...
}
在您的视图中,只需将您的
id
作为值放入
复选框
元素中即可

<td><input type="checkbox" id="checkbox" name="checkbox[]" value="<?php echo $row->id; ?>"></td> 

请检查以下代码

控制器(welcome.php)


Emp_ID

嘿,我在fetchDataFromTable和我的视图中都做了更改。但现在我遇到以下错误:遇到PHP错误严重性:注意消息:未定义属性:stdClass::$id Filename:JcMeetingExpense/jc_meeting_expense.PHP行号:439“>我解决了这个错误,我只是在网站url中使用了formaction属性。但是,我再次在excel中获取除一个特定行之外的所有数据。请查看您的
复选框中的内容
变量它工作正常,但在excel报告中,我仅获取选中行的员工ID。。。。我需要检查过的员工@Parth viramgam的所有记录,并正确记录我的评论,我已将其放入控制器文件中。。您需要编写代码从数据库中获取记录并将其传递到报表视图文件。目前,您只有一个ID,因为它是用于解决问题的公正和虚拟记录。
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {
  public function index(){
    $query[] = array(
        'name' => 'empl_1',
        'employee_id' => 'empl_1',
        'category' => 'empl_1',
        'place_name' => 'empl_1',
        'no_of_employees' => 'empl_1',
        'claimed_amount' => 'empl_1',
        'amount_per_head' => 'empl_1',
        'meeting_date' => 'empl_1',
        'expense_bill' => 'empl_1',
        'other_expense' => 'empl_1',
        'amount' => 'empl_1',
    );
    $query[] = array(
        'name' => 'empl_2',
        'employee_id' => 'empl_2',
        'category' => 'empl_2',
        'place_name' => 'empl_2',
        'no_of_employees' => 'empl_2',
        'claimed_amount' => 'empl_2',
        'amount_per_head' => 'empl_2',
        'meeting_date' => 'empl_2',
        'expense_bill' => 'empl_2',
        'other_expense' => 'empl_2',
        'amount' => 'empl_2',
    );
    $query[] = array(
        'name' => 'empl_3',
        'employee_id' => 'empl_3',
        'category' => 'empl_3',
        'place_name' => 'empl_3',
        'no_of_employees' => 'empl_3',
        'claimed_amount' => 'empl_3',
        'amount_per_head' => 'empl_3',
        'meeting_date' => 'empl_3',
        'expense_bill' => 'empl_3',
        'other_expense' => 'empl_3',
        'amount' => 'empl_3',
    );
    $data['query'] = $query;
    $this->load->view('welcome',$data);
  }

  public function fetchDataFromTable(){
    // Here you will get the id of employee and on basis of you need to fetch data from DB.
    // var_dump($this->input->post('checkbox'));
    $data['selected_emp'] = $this->input->post('checkbox');
    $this->load->view('report_view',$data);
  }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Simple CodeIgniter App</title>
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
    <form action="<?php echo base_url('index.php/Welcome/fetchDataFromTable'); ?>" method="post">
        <table class="viewjcexpense" border>
            <thead>    
                <tr>
                    <th>Select</th><th>Name</th><th>Employee ID</th> 
                    <th>Category</th><th>Place Name</th><th>No Of Employees</th> 
                    <th>Claimed Amount</th><th>Amount Per Head</th>
                    <th>Meeting Date</th><th>Expense Bill</th><th>Other Expense</th> 
                    <th>Amount</th>
                </tr>
            </thead>
            <tbody>
                <div class="scroll1">
                    <?php foreach($query as $row): ?>
                        <tr> 
                            <td><input type="checkbox" id="checkbox" name="checkbox[]" value="<?php echo $row['employee_id']; ?>"></td>  
                            <td><?php echo $row['name']; ?></td>
                            <td><?php echo $row['employee_id']; ?></td>
                            <td><?php echo $row['category']; ?></td>
                            <td><?php echo $row['place_name']; ?></td>
                            <td><?php echo $row['no_of_employees']; ?></td>
                            <td><?php echo $row['claimed_amount']; ?></td>
                            <td><?php echo $row['amount_per_head']; ?></td>
                            <td><?php echo $row['meeting_date']; ?></td>
                            <td><?php echo $row['expense_bill']; ?></td>
                            <td><?php echo $row['other_expense']; ?></td>
                            <td><?php echo $row['amount']; ?></td>
                        </tr>
                    <?php endforeach; ?>
                    <tr>
                        <td colspan="12" align="center">
                            <p> <input type="submit" value="Generate Report" name="generatereport"> </p>
                        </td>
                    </tr>
                </div>
            </tbody>
        </table>
    </form>
</body>
</html>
<?php 
header("Content-type: application/octet-stream");
header("Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet charset=utf-8");
header("Content-Disposition: attachment; filename=Emp_List.xls");
header("Pragma: no-cache");
header("Expires: 0");
?>
<table class="display" id="userListTbl">
    <thead>
        <tr>
            <td>Emp_ID</td>
        </tr>
    </thead>
    <tbody>
        <?php foreach($selected_emp as $v){ ?>
            <tr>
                <td><?php echo $v; ?></td>
            </tr>
        <?php } ?>
    </tbody>
</table>