我正在使用codeigniter。我有一个视图文件,我选择一个员工并使用表单操作发送id并选择员工可以执行的服务并将它们存储在一个表中。我已经插入了员工ID和服务ID。现在我需要插入员工姓名 我的控制器文件是
class admin_service_limitation extends CI_Controller{
public function services()
{
$id = $this->session->userdata('employee');
$id_array = $this->input->post("services");
//I need to get the employee name here and store them in a table along with employee id and service id
for ($i = 0; $i < count($id_array); $i++) {
if(isset($id_array[$i])&& $id_array[$i]!=""){
$data_to_store = array('employee_id' => $id, 'service_id' => $id_array[$i]);
$this->add_service_model->save($data_to_store);
}
}
$data['addservice'] = $this->add_service_model->get_addservices();
$data['main_content'] = 'admin/service_limitation/newview';
$this->load->view('includes/template', $data);
}
我在这里获取员工ID和服务ID并将其存储在一个表中。该表包含employee_id
,employee_name
和service_id
等字段。
我的模型文件:
class sample_model extends CI_Model{
function store_service($data)
{
$insert = $this->db->insert('service', $data);
return $insert;
}
}
这里我编写了一个用于插入addservice
表的函数。我将所有数据存储为数组并将其保存在addservice
表中
我的视图文件,我选择一名员工。
select.php
<?php
echo form_open('admin/service_limitation/service_view/'.$this->uri->segment(4).'', $attributes);
?>
<table class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th class="header">Employee id</th>
<th class="yellow header headerSortDown">First name</th>
<th class="green header">Last name</th>
<th class="red header">Email</th>
<th class="red header">Chair renter</th>
<th class="red header">Actions</th>
</tr>
</thead>
<tbody>
<?php
foreach($employee as $row)
{
echo '<tr>';
echo '<td>'.$row['id'].'</td>';
echo '<td>'.$row['emp_first_name'].'</td>';
echo '<td>'.$row['emp_last_name'].'</td>';
echo '<td>'.$row['emp_email_id'].'</td>';
echo '<td>'.$row['chair_renter'].'</td>';
echo '<td class="crud-actions">
<a href="'.site_url("admin").'/service_limitation/service_view/'.$row['id'].'" class="btn btn-info">Select employee</a>
</td>';
echo '</tr>';
}
?>
</tbody>
</table>
<?php echo form_close(); ?>
在这个视图中,我有一个表单,一旦我提交表单,员工ID将被发送到控制器功能,这里我需要现在发送员工姓名..可以有人帮我编码吗?
我选择服务的另一种观点是:
service_view.php
<?php
$attributes = array('class' => 'form-inline reset-margin', 'id' => '');
echo form_open('admin/service_limitation/newview', $attributes);
?>
<table class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th class="header">Service id</th>
<th class="yellow header headerSortDown">Service name </th>
<th class="green header">Service catogary</th>
<th class="red header">Service tax</th>
<th class="red header">Service length</th>
<th class="red header">Service price</th>
<th class="red header">Actions</th>
</tr>
</thead>
<tbody>
<?php
foreach($service as $row)
{
echo '<tr>';
echo '<td>'.$row['id'].'</td>';
echo '<td>'.$row['service_name'].'</td>';
echo '<td>'.$row['category'].'</td>';
echo '<td>'.$row['service_tax'].'</td>';
echo '<td>'.$row['service_length'].'</td>';
echo '<td>'.$row['service_price'].'</td>';
echo '<td class="crud-actions">
<input type="checkbox" value="'.$row['id'].'" name="services[]"/>
</td>';
echo '</tr>';
}
?>
</tbody>
</table>
<button class="btn btn-primary" type="submit">Save changes</button>
<button class="btn" type="reset">Cancel</button>
</div>
<?php echo form_close(); ?>
上面的视图调用我的控制器文件中的services函数,通过它我可以保存数据,例如第一个视图中的employee id和第二个视图中的services id。
修改01
public function select_service($id)
{
$this->load->library('session');
$this->session->set_userdata('employee', $id);
$data['service'] = $this->add_service_model->get_services();
$data['main_content'] = 'admin/service_limitation/service_view';
$this->load->view('includes/template', $data);
}
这是一个函数,我将employee id作为会话变量,并在我上面的选择函数中使用它们。是否有可能获得员工姓名,就像我有employee_id一样。
答案 0 :(得分:1)
可以通过添加其他URL段将多个参数传递到控制器功能。您可能需要在application / config / routes.php。
中设置此路由CodeIgniter documentation提到了如何做到这一点以及它是如何运作的。
如果与特定内容不匹配,并且参数的长度始终不是相同的数字,那么您需要使用表单来发送数据,并且使用$this->input...
获取要在函数中使用的数据
答案 1 :(得分:0)
正如NetVicious所提到的,您可以在url中传递属性,如下所示 -
<a href="<?php echo site_url('member/addcard/'.$member->customer_id.'/'.$member->customer_mobile); ?>" class="btn-danger glyphicon glyphicon-plus"><strong style="color: #dddddd;">Add Card</strong></a>
在控制器中,您可以将其称为 -
function addcard($id,$phone) {
//Your Code
}
这对我来说很好。
OR
您可以在输入标记中添加data-pricetag="<?= $treatments->treatment_price?>" data-customer="<?= $member->customer_type?>"
类似的内容,并调用函数onlick。
然后
function update_price(e) {
// $('#treatment').on('change',function () {
var price = 0;
$(#yourid, $(e)).click(function(){
//console.log($(this).data('pricetag'));
//You get the values here
price += $(this).data('pricetag');
//price += parseInt( $(this).next().text())
var cust_type = $(this).data('customer');
jQuery.ajax({
type: 'POST',
// dataType: 'html',
//dataType: "json",
data: your parameters,
async:true,
url: "<?php echo base_url() . 'member/memberPack/'; ?>",
success: function(data)
{
console.log(data);
//$("#price").html("");
$("#price").val(data.package_price);
$("#session").val(data.package_session);
}
});
}); }
这只是我的想法的布局,你需要试试。如果有任何错误。
答案 2 :(得分:0)
有两种方法可以解决您的查询(除了作为uri段发送): -
您只传递ID,就像在数据库中插入一样: -
INSERT INTO EMPLOYEE_TABLE(employee_id, employee_name, service_id) SELECT $employee_id,(SELECT employee_name from employee_table where employee_id=$employee_id),$service_id
AJAX
: - ("#employee_form").submit(function(e) { base_url=<?php your_base_url ?> e.preventDefault(); $.ajax({ type : "POST", url : base_url+"controller_name/function", data : $("#employee_form").serialize(), success : //do anything }); });
现在在您的控制器中,您可以通过邮件检索您的数据,即: -
$this->input->post('employee_name');
答案 3 :(得分:0)
我想在你的第一个表格中获取员工的详细信息。 存储该员工ID时,您还可以选择员工姓名。 并将其存储为id。
但是如果您想要另一种方式,您需要获取员工的详细信息,例如姓名,ID并将其传递给:
$data['employee_id'] = your employee id;
$data['employee_name'] = your employee name;
以这种方式在service_view.php中 你有两个新变量。
$ employee_id:您的员工ID; $ employee_name:您的员工姓名。
然后当您需要将它们传递给任何操作时,只需将其作为您网站中的任何链接传递。
site_url() . 'Controller_Name/Method_name/'.$employee_id.'/'.$employee_name;
依此类推:))