Php codeigniter分页下拉列表选择过滤器
我已经创建了一个站点,在其中我将项目分组。当用户从提供的下拉菜单中选择一个项目并将其提交时,将检索与该项目编号相关的项目并发送回控制器 我的控制器Php codeigniter分页下拉列表选择过滤器,php,codeigniter,pagination,Php,Codeigniter,Pagination,我已经创建了一个站点,在其中我将项目分组。当用户从提供的下拉菜单中选择一个项目并将其提交时,将检索与该项目编号相关的项目并发送回控制器 我的控制器 public function dwg_list() { $data['proj_num'] = $this->model_proj->proj_num_all(); $num_row = 1; if ($this->input->post('project_no') != '0') {
public function dwg_list()
{
$data['proj_num'] = $this->model_proj->proj_num_all();
$num_row = 1;
if ($this->input->post('project_no') != '0')
{
$data['result'] = $this->model_issue->list_dwg($this->input->post('project_no'));
if (count($data['result']) > 0)
{
$num_row = count($data['result']);
} else $num_row = 1;
}
$this->load->library('pagination');
$config['base_url'] = base_url() . '/index.php/dwg_issue/dwg_list/page';
$config['total_rows'] = $num_row;
$config['per_page'] = 2;
$this->pagination->initialize($config);
$data['main_content'] = 'dwg_list';
$this->load->view('includes/template.php', $data);
}
我的看法
<h1>This page displays all the registered drawings</h1>
<br>
<div id="body">
<div class="row">
<div class="form-group-sm"><lable class="col-sm-2 control-label">Project number:</lable>
<?php
$js = 'onchange="this.form.submit()" class="form-control" id="focusInput"';
echo form_open('dwg_issue/dwg_list');
echo "<div class=\"col-xs-2\">" . form_dropdown('project_no',$proj_num, $this->input->post('project_no'),$js)."</div>";
echo form_error('project_no', '<div class="col-xs-4"><div class="alert alert-danger fade in"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>','</div></div>');
?>
</div>
</div>
<br>
<?php
echo "<noscript>".form_submit('submit','Submit')."</noscript>";
?>
<table title="List of drawings" class="table table-hover" style="font-size: 14px">
<caption><b>List of drawings</b></caption>
<thead>
<tr><th>Project number</th><th>Drawing number</th><th>Client drawing number</th>
<th>Title</th><th>Size</th><th>Drawn by</th><th>Revision</th><th>Drawn Date</th></tr>
</thead>
<tbody>
<?php
if(!empty($result))
{
foreach($result as $row)
{
echo "<tr>";
echo "<td>" . $row->project_no . "</td>";
echo "<td>" . $row->sws_dwg_no . "</td>";
echo "<td>" . $row->client_dwg_no . "</td>";
echo "<td>" . $row->dwg_title . "</td>";
echo "<td>" . $row->dwg_size . "</td>";
echo "<td>" . $row->dwg_by . "</td>";
echo "<td>" . $row->dwg_rev . "</td>";
echo "<td>" . date('Y/m/d', strtotime($row->dwg_date)) . "</td>";
echo "</tr>";
}
}
?>
</tbody>
</table>
<?php echo $this->pagination->create_links(); ?>
</div>
此页面显示所有已注册的图形
项目编号:
也许将当前选择保存在表单处理程序“dwg\U问题/dwg\U列表”中的会话变量中是有意义的
每当呈现视图时,您都会查看会话变量“selectedDropDownItem”是否已设置,然后在写入时。。。您将打印“选定”选项
看看这个
echo "<select>";
foreach ($selectOptions as $as){
//check session if default option set....
if (isset($this->session->userdata['selectedOption'])){
$defOption = $this->session_userdata['selectedOption'];
}else{
$defOption= "";
}
if (!strcmp($defOption,$as)){ // if the current option is equal to the session stored option...
echo "<option value=\"".$as."\" selected=\"selected\">".$as."</option>";
}else{
echo "<option value=\"".$as."\">".$as."</option>";
}
}
echo "</select>";
echo”“;
foreach($selectOptions作为$as){
//如果设置了默认选项,请检查会话。。。。
if(设置($this->session->userdata['selectedOption'])){
$defOption=$this->session_userdata['selectedOption'];
}否则{
$defOption=“”;
}
如果(!strcmp($defOption,$as)){//如果当前选项等于会话存储选项。。。
回显“$as.”;
}否则{
回显“$as.”;
}
}
回声“;
如果我正确理解了您的问题,我认为您可以使用URI段传递项目编号,这样您就可以随时访问选定的项目编号,而无需过账或使用过账方法
public function dwg_list($porject_no){
echo $porject_no;
......
}
例如:
www.your-domain.com/controller/dwg_list/{project_no}
我希望这能给你一些想法
以下是一个链接,我认为可以帮助您:
最好使用用户会话变量。如果用户离开页面或单击另一个链接,则会话变量必须刷新或终止-我该怎么做?在选择框中读取用于定义默认值的会话变量后,您将删除视图_文件中的会话数据。您可以使用$this->session->unset_userdata('some_name');请在《CI用户指南》中查找,谢谢您的帮助。我能够将URI段传递给页面,它几乎可以正常工作。我正在使用onchange
submit来提交下拉列表,我想这就是让我感到困惑的地方。有什么想法吗?
public function dwg_list($porject_no){
echo $porject_no;
......
}