我花了一整天的时间试图找到答案而我却放弃了。这是我的问题,希望你能帮助我:
我需要从Select2到Post
方法传递多个选项。直到这里我没有问题,如果我在Select2选项上一个接一个地选择它们,我按下提交,一切都按原样进行。
当页面加载时:我可以看到上次保存的选项的默认值,但如果我按下提交,而不从列表中选择任何内容,我希望相同的值将再次通过{{ 1}}方法,但没有...它变为空白,删除最后保存的选项。
换句话说,这件事有效的唯一方法就是我每次都选择一个选项(或多个选项),如果不这样做,则不会发送默认选项。
这是我的代码示例,因此您可以查看并给我一个手:
Post
在page2.php上我将 .....
<title>page1</title>
<script type="text/javascript">
$(document).ready(function(){
$(".myselect").select2();
});
</script>
</head>
<body>
<?php
$previouschoice="This is one This is two"; //this variable is populated with a mysqli query.
?>
<form method="post" action="page2.php">
<select id="test" class="myselect" name="mychoices[]" multiple="multiple">
<option value="<?php echo $previouschoice;?>" selected="selected"><?php echo $previouschoice;?></option>
<option value="This is one">This is one</option>
<option value="This is two">This is two</option>
<option value="This is three">This is three</option>
</select>
</form>
</body>
值存储到一个mysql数据库中,以便以后检索,抓取和连接一个变量中的数据,如下所示:
Post
所以$mypost =$_POST['mychoices'];
foreach ($mypost as $a) {
$mychoices=$mychoices.' '.$a;
}
最终将$mychoices
返回page1.php
还尝试了其他帖子中建议的initSelection,输出完全相同。这样做了:
$previouschoice
请帮忙!
答案 0 :(得分:0)
我不确定我完全理解你的问题,但我会试一试。
如果这对您有用,那么我会添加类似
的内容<?php if(in_Array("This is one", $previousChoice) echo "selected">
如有必要,您可以替换“这是一个”。这假设$ previousChoice当然是一个数组。
这样,您首先选择的选项将自动重新选择,如果您再次提交表单,则应继续使用。
韦恩