web-gelistirme-sc.com

Birden çok seçimden değerleri yayınla

Bir formdaki çoklu seçimden değerleri nasıl gönderebilirim? Gönder butonuna bastığımda seçilen değerlerin hiçbiri kaydedilmiyor.

<form id="form" action="" method="post">
    <div>
        <select id="inscompSelected" multiple="multiple" class="lstSelected">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>                
        </select>
        <input type="submit" value="submit">
    </div>
</form>
57
user1430949

Bir name niteliği eklemeniz gerekir.

Bu çoklu bir seçim olduğundan, HTTP düzeyinde, istemci aynı ada sahip birden çok ad/değer çifti gönderir, method="GET": someurl?something=1&something=2&something=3 ile bir form kullanıyorsanız bunu kendiniz gözlemleyebilirsiniz.

PHP, Ruby ve diğer bazı kütüphane/çerçeveler söz konusu olduğunda, adın sonuna köşeli parantez ([]) eklemeniz gerekir. Çerçeveler bu dizgiyi ayrıştırır ve onu bir dizi gibi, kullanımı kolay bir formatta sunar. 

İsteği elle ayrıştırmanın yanı sıra, birden fazla değere erişmenin dil/çerçeve/kütüphane agnostik bir yolu yoktur, çünkü hepsinde farklı API'ler vardır.

PHP için şunları kullanabilirsiniz:

<select name="something[]" id="inscompSelected" multiple="multiple" class="lstSelected">
110
iambriansreed

şunu dene: burada seçim seçim elemanınız

let select = document.getElementsByClassName('lstSelected')[0],
    options = select.options,
    len = options.length,
    data='',
    i=0;
while (i<len){
    if (options[i].selected)
        data+= "&" + select.name + '=' + options[i].value;
    i++;
}
return data;

Veriler, sorgu dizesi şeklindedir i.e.name = value & name = anotherValue

0
Chin2