Javascript 使用CodeIgniter中的复选框生成特定行的excel报告
到目前为止,在我的代码中,我能够生成整个表的excel报告。我想使用复选框生成特定行的报告。我不能这样做,请帮我解决。 从查看功能中,我可以得到表格结果,我必须使用复选框从中生成特定行的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
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>