我有一个视图,其中包含foreach循环从数据库中显示的数据,我想要从视图中获取编辑的数据并逐个更新它在数据库中,但问题是数据库如果有where子句将更新但在我的情况下我不知道如何从视图到控制器获取密钥(tid)这里是显示数据的控制器功能
public function bulk()
{
$pid = '';
if($this->input->post('pid'))
$pid = $this->input->post('pid');
$template['menu'] = $this->shared_model->get_flightmenus();
if($pid == '')
{
if($this->uri->segment(3))
$pid = $this->uri->segment(3);
else
$pid = $template['menu'][0]['tid'];
}
$template['pid'] = $pid;
// echo $pid;
// exit();
$template['airline'] = $this->shared_model->get_records('eat_airline');
$template['terminal'] = $this->shared_model->get_records('eat_terminal');
$template['data'] = $this->shared_model->get_recordbyvalue('eat_flight','menu_tid = '.$pid);
$template['main_content'] = $this->load->view('flight/flight_bulk_view', $template, true);
$this->load->view('includes/template', $template);
}
这是视图
<h4><?php echo anchor('login/logout', 'Logout'); ?></h4>
<?php echo anchor('/home', 'Home'); ?>/Flights
<h2>Flights</h2>
<div>
<?php echo form_open('/flight/') ?>
<?php foreach($menu as $row){ $options[$row['tid']] = $row['m_name']; } ?>
<?php $js = 'name="pid" id="pid" onChange="this.form.submit();"'; ?>
<?php echo form_dropdown('pid', $options, $pid, $js); ?>
<?php echo form_close(); ?>
</div>
<?php echo anchor('/flight/display/1/0/'.$pid, 'Create'); ?>
<?php echo anchor('flight/bulk', 'Bulk Update'); ?>
<table>
<tr>
<td>
Name
</td>
<td>
Airline
</td>
<td>
From
</td>
<td>
Stopover
</td>
<td>
Destination
</td>
<td>
Price
</td>
<td>
Unit
</td>
<td>
Tax
</td>
<td>
Protection
</td>
<td>
Fare
</td>
<td>
Week Offer
</td>
<td>
Menu
</td>
<td>
Sort
</td>
<td>
Edit
</td>
<td>
Delete
</td>
</tr>
<?php foreach($data as $row){ ?>
<tr>
<td>
<?php echo $row['f_name'] ?>
</td>
<td>
<?php $options1[0] = ''; foreach($airline as $row1){ $options[$row1['tid']] = $row1['a_name']; } ?>
<?php echo $options[$row['airline_tid']]; ?>
</td>
<td>
<?php $options1[0] = ''; foreach($terminal as $row1){ $options[$row1['tid']] = $row1['t_name']; } ?>
<?php echo $options[$row['terminal_from_tid']]; ?>
</td>
<td>
<?php echo $row['t_stopover'] ?>
</td>
<td>
<?php $options1[0] = ''; foreach($terminal as $row1){ $options[$row1['tid']] = $row1['t_name']; } ?>
<?php echo $options[$row['terminal_destination_tid']]; ?>
</td>
<td>
<?php echo $row['f_price'] ?>
</td>
<td>
<?php echo $row['f_unit'] ?>
</td>
<td>
<?php if($row['f_tax']>0) echo 'Yes'; else echo 'No'; ?>
</td>
<td>
<?php echo $row['f_protection'] ?>
</td>
<td>
<?php echo $row['f_fare'] ?>
</td>
<td>
<?php if($row['f_weekoffer']>0) echo 'Yes'; else echo 'No'; ?>
</td>
<!--
<td>
<?php $options[0] = ''; foreach($menu as $row1){ $options[$row1['tid']] = $row1['m_name']; } ?>
<?php echo $options[$row['menu_tid']]; ?>
</td>
-->
<td>
<?php echo $row['sortindex'] ?>
</td>
<td>
<?php echo anchor('flight/display/2/'.$row['tid'].'/'.$pid, 'Edit'); ?>
</td>
<td>
<?php echo anchor('flight/display/3/'.$row['tid'].'/'.$pid, 'Delete'); ?>
</td>
</tr>
<?php } ?>
</table>
我无法提出如何完成的逻辑
任何帮助将不胜感激
答案 0 :(得分:0)
您正逐行从DB获取值。数据库中的每一行都有一个唯一的ID(希望如此)。这是WHERE子句的主要标准。
我没有在HTML中看到任何输入,因此我并不真正了解您如何保存数据,但您可以在每行中执行隐藏输入,例如<input type="hidden" id="[your_row_id_from_DB]" />
或如果每行有多个输入 - 添加一个附加了id的名称,例如<input type="text" name="flight_your_row_id" />
。这样你就可以解析你的名字并知道提交了哪些值。
答案 1 :(得分:0)
我只能看到你想要将视图中的数据传递给控制器,你可以通过将数据传递给url然后从控制器中使用它来将其用于将来使用。