我正在使用具有多個選擇(使用Select2)的表單並使用HTML5的Formdata對象將數據提交給服務器。當我發送文本或文件時運行良好,但在這種情況下不起作用。發送多個選擇到服務器
我已經根據需要給出了名稱屬性lbl [],並且還指定了multiple =「multiple」。
是否Formdata支持多選擇或有什麼我失蹤?
我的選擇:
<select class="form-control theread_p_ip" name="thread_p[]" multiple="multiple" style="width: 100%"></select>
我使用FORMDATA方式:
form_data = new FormData($(mydata.sform)[0]);
ajaxoptions.data=form_data;
其中ajaxoptions是我傳遞到JQuery的AJAX和$(mydata.sform)的對象[0]選擇我的形式
我一直在使用print_r($_POST,true)
檢查,我得到這個:
Array
(
[thread_p] =>
[thread_lbl] => giggg
[ddemand] => json
[dtype] => json
[eltarget] => -1
[sform] => #ta-tbxnewthread
[mkey] => tbx_newthread
)
你可以看到thread_p是空的。如果我指定name =「thread_p」而不是使用[],那麼我會單獨獲取最後一個選定的值。
PS:忽略數組中的其他值。這些是我從客戶端發送的其他參數。
如果你想知道在select中沒有選項,那麼它們通過select2的AJAX加載,它正常工作。
UPDATE:使用hackerman的小提琴解決:https://jsfiddle.net/95khdzp2/1/
而在服務器端你,你必須通過分隔值「」使用explode(',', $variable);
分開,如果你使用的是PHP
'ajaxoptions.data.mySelect2 = $(「。theread_p_ip」)。val();'? – Hackerman
沒有。 select2只是我正在使用的一個插件。 http://select2.github.io/沒有可變的data.mySelect2 –
你甚至嘗試過嗎?或者你已經解決了它? – Hackerman