我知道这里有很多这样的话题,但我找不到解决方案。
我的问题是什么:
我有一个包含数据的表格,我可以为每个可以过滤的列提供输入字段。
我在桌子上还有一个下拉菜单。我可以在那里选择不同的值,并使用onchange="this.form.submit()"
表自动调整到我选择的值。
问题:
当我在下拉列表中选择一个值然后输入要过滤的内容时,表单会重新加载并且所选值将重置为第一个值。因此无法过滤。 (第一个值除外)
我正在使用CodeIgniter:
查看:
<form method="post" accept-charset="utf-8" action="<?php echo site_url("workpackage"); ?>">
<?php echo form_dropdown('wptypes', $wptypes, set_value('wptypes'), 'id="wptypes" class="form-select" onchange="this.form.submit()"'); ?>
</form>
控制器:
$search = $this->input->post('wptypes');
if (empty($search)) {
$search = 1;
}
在该代码之后,我有一个函数,我将值$search
以及任何过滤器值作为参数传递给模型。
那么如何保留所选值,可以过滤每个下拉值?
谢谢!
答案 0 :(得分:1)
将您的页面另存为.php扩展名
<?php
if($parity == "none")
{
$sel1="SELECTED";
}
if($parity == "even")
{
$sel2="SELECTED";
}
?>
<html>
<body>
<form method="get" action="(page name)">
<select name="parity">
<option value="none" <?php echo $sel1 ?>>None</option>
<option value="even" <?php echo $sel2 ?>>Even</option>
</select>
<input type="submit" name="submit" value="Apply" accesskey="a" />
</form>
</body>
</html>
答案 1 :(得分:1)
解决方案:
我需要将Controller更改为:
if ($this->input->post('wptypes')) {
$this->session->set_userdata('wptypes', $this->input->post('wptypes'));
}
$search = $this->session->userdata('wptypes');
$data["selval"] = $search;
和我的观点:
<form method="post" accept-charset="utf-8" action="<?php echo site_url("workpackage"); ?>">
<?php $wptypesField = (isset($_POST['wptypes'])?$_POST['wptypes']:set_value('wptypes')); ?>
<?php echo form_dropdown('wptypes', $wptypes, set_value('wptypes', $selval), 'id="wptypes" class="form-select" onchange="this.form.submit()"'); ?>
</form>
谢谢穆罕默德!
答案 2 :(得分:0)
更新您的观看部分,
<form method="post" accept-charset="utf-8" action="<?php echo site_url("workpackage"); ?>">
<?php $wptypesField = (isset($_POST['wptypes'])?$_POST['wptypes']:set_value('wptypes')); ?>
<?php echo form_dropdown('wptypes', $wptypes, $wptypesField, 'id="wptypes" class="form-select" onchange="this.form.submit()"'); ?>
</form>