我有一个Dorpdown菜单,当我选择一个值时,会有一个表格,其中包含有关此值的条目。在表格之外,我可以打开新页面中的每个条目。我想制作一个“后退”按钮,当我回到页面时,应该选择我之前选择的值。
这是我的下拉代码:
<div class="ccol-l-4 col-m-12">
<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>
</div>
感谢您的回答:)
答案 0 :(得分:1)
嗯,这里有3个选项:
模式非常简单,OnSelect下拉列表获取选定值,将这些值保存在稍后可供您访问的位置。检查微粒储存是否具有任何类型的值,从那里获取那些值。再次回到内线下拉..
我在这里告诉你: 我们如何使用CodeIgniter Session + jQuery来取回你的下拉值。
您的HTML或观看次数:
<form method="post" accept-charset="utf-8" action="<?php echo site_url("workpackage"); ?>">
<input type="hidden" name="<?=$this->security->get_csrf_token_name()?>" value="<?=$this->security->get_csrf_hash()?>">
<div class="form-group">
<label for="name">Client</label>
<?php echo form_dropdown('wptypes', $wptypes, set_value('wptypes'), 'id="wptypes" class="form-select" onchange="this.form.submit()"'); ?>
</div>
</form>
<script type="text/javascript">
$(document).ready(function(){
// wptypes select box
var $wptypes = $('select#wptypes');
// check on load of wptypes value exist in session
var _prev_sel_val = "<?=$this->session->userdata('wptypes') ? $this->session->userdata('wptypes') : '';?>";
// if not empty, set value
if(_prev_sel_val){
$wptypes.val(_prev_sel_val);
}
});
</script>
您的控制器(示例):
<?php
// security first always....
(defined('BASEPATH') or exit('No direct script access allowed'));
/**
* Class Controller
*
* Class workpackage Controller to handle login & logout
*/
class Workpackage extends CI_controller
{
/**
* Class Constructor
*/
public function __construct()
{
// execute parent class constructor
parent::__construct();
}
/**
* workpackage, Default method to execute if method name missing
* @return [type] [description]
*/
public function index()
{
// only on POST Request
if ($this->input->post('wptypes')) {
// drop down value
$wptypes = array(
'wptypes' => $this->input->post('wptypes', TRUE)
);
// set in session
$this->session->set_userdata( $wptypes );
// your other stuff do..... here...
}
}
}
/* End of file workpackage.php */
/* Location: ./application/controllers/workpackage.php */
答案 1 :(得分:0)
您可以使用$.cookie
获取并设置所选的项目值。
<select id="yourid">
</select>
$("yourid").on("change", function(){
$.cookie("selectedItem", $(this).val())
})
// when you return to page
var val = $.cookie("selectedItem");
if(val != null)
{
$('#yourid option[value="' + val + '"]').attr('selected', 'selected');
}
答案 2 :(得分:0)
您必须通过在视图中添加条件来设置帖子值,例如
<?php echo form_dropdown('wptypes', $wptypes,
// check if the post wptypes is set then make that option selected
(isset($_POST['wptypes']) ? $_POST['wptypes'] : ''),
'id="wptypes" class="form-select" onchange="this.form.submit()"'); ?>
此外,如果页面不同,请使用localStorage将当前选项保存在其中。
从html中删除onchange
<div class="ccol-l-4 col-m-12">
<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"'); ?>
</form>
</div>
在JS中添加以下代码
$(function(){
// add on change event
$('#wptypes').on('change',function(){
if(this.value){ // if this value is not blank
// set value in localStorage
localStorage.setItem('wptypes',this.value);
// finally, form submits
this.form.submit();
}
});
// Code to make selected wptypes options
localStorage.getItem('wptypes') && // if value exists in localStorage
$('#wptypes').val(localStorage.getItem('wptypes')) // set it
});