Я весь день пытался найти ответ, и я просто сдался. Вот моя проблема, надеюсь, вы можете мне помочь:Отправить по умолчанию Select2 с сообщением
Мне нужно пройти несколько выборов от Select2 до Post
. До сих пор у меня нет проблем, если я выбираю их один за другим в параметрах Select2, я нажимаю кнопку «Отправить», и все идет так, как должно.
Дело в том, когда страница загружается: я могу увидеть значение по умолчанию с последними сохраненными параметрами, но если я нажму кнопку «Отправить», не выбирая ничего из списка, я ожидаю, что одно и то же значение будет передано снова через Post
метод, но нет ... Он идет пустым, стирая последнюю сохраненную опцию.
Другими словами, единственный способ, которым это работает, - это когда я выбираю вариант (или несколько параметров) каждый раз, потому что, если я этого не делаю, опция по умолчанию не отправляется.
Here's пример моего кода, так что вы можете проверить его и дать мне руку:
.....
<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>
На page2.php хранить значение Post
в базу данных MySQL для последующего поиска, захвата и конкатенации данные в одной переменной, например:
$mypost =$_POST['mychoices'];
foreach ($mypost as $a) {
$mychoices=$mychoices.' '.$a;
}
Так $mychoices
в конечном итоге будет $previouschoice
назад на page1.php
Также попробовал initSelection, предложенный в других сообщениях, с тем же выходом. Сделал следующее:
$(".myselect").select2().select2("val", null);
$('#test').val('<?php echo $previouschoice;?>').trigger('change');
Помогите!
Я не понимаю, что ваша проблема вы можете иметь еще одну попытку в объяснении – RiggsFolly
я хотел бы начать с изменения 'Name =«mychoices []»' в 'Name =«mychoices»', как я думаю, что будет создавайте массив внутри массива, который может сбивать с толку. – RiggsFolly
Но если вы хотите узнать, что вы получили в массиве $ _POST, добавьте 'print_r ($ _ POST);' к вашему коду, и он будет автоматически сбрасывать массив для чтения формата – RiggsFolly