簡體   English   中英

使用Post發送默認的Select2選項

[英]Send default Select2 option with Post

我花了一整天的時間來尋找答案,但我只是放棄了。 這是我的問題,希望您能為我提供幫助:

我需要通過Post方法從Select2中傳遞多個選擇。 直到這里,如果我在Select2選項上一個接一個地選擇它們,我都沒有問題,我按了提交,一切按預期進行。

問題是頁面加載時:我可以看到帶有最后保存的選項的默認值,但是如果我按提交,而不從列表中選擇任何內容,我希望相同的值將再次通過Post方法傳遞,但不會...變成空白,刪除最后保存的選項。

換句話說,這件事唯一可行的方法是,如果我每次都選擇一個(或多個)選項,因為如果我不選擇,則不會發送默認選項。

這是我的代碼示例,因此您可以檢查一下並幫我一下:

 .....
<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');

請幫忙!

我不確定我是否完全理解您的問題,但是會給您一個機會。

  1. 您可以從選擇,提交和檢索中選擇一些項目。
  2. 重新加載頁面時,您可以閱讀先前的選擇
  3. 重新提交“忘記”選擇,除非再次選擇相同的選擇。

如果這對您有效,那么我會添加一些類似的內容

<?php if(in_Array("This is one", $previousChoice) echo "selected">

如果需要,您可以在其中替換“這是一個”。 當然,這假定$ previousChoice是一個數組。

這樣,您首先選擇的選項將被自動重新選擇,並且如果您再次提交表單,這些選項應該會保留下來。

韋恩

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM