← Uz sākumu

Multiple selects

2004. gada 2. novembrī, 5 komentāri

Maza PHP funkcija, ka palīdz apiet problēmu, kura rodas, veidojot formas ar select elementu, kurā drīkst vienlaicīgi atzīmēt vairākus elementus.

Tā vietā, lai rakstītu <select name="sel[]">, kas neatbilst jums visiem tik mīļajām specifikācijām un rekomendācijām, ar šīs funkcijas palīdzību var rakstīt tā, kā visā normālajā pasaulē pieņemts - <select name="sel">.

Rezultātā tieši tāpat kā pirmajā gadījumā tiks iegūts masīvs $_POST['sel'], kurā tad arī tiks uzskaitīti visi elementi. Vienīgais mīnuss, kurš pastāv, ir tas, ka lai servera galā sekmīgi to visu apstrādātu, nāksies izmantot mazu viltību, jo, gadījienā, ja tiks atzīmēts tikai viens no elementiem, nekāds masīvs neizveidosies (kas loģiski):

$_POST = processRawPostData();

if (isset($_POST['sel']) && !is_array($_POST['sel'])) {
    $_POST['sel'] = Array($_POST['sel']);
}

P.S. Šitais nestrādās, izmantojot formu ar enctype="multipart/form-data".

P.P.S. Un vēl. Ja mēs pieminam arīdzan WML, tad šeit multiplie selekti tiek padoti kā sel=val1;val2;val3

Tu atbildi augstāk redzamajam komentāram. Atcelt

Gravatar es

2004. gada 2. novembrī, plkst. 22:32

Un patīk cilvēkiem sarežģīt sev dzīvi :))

Gravatar anonīmi

2004. gada 2. novembrī, plkst. 22:59

vietās, kur specene ir stulba, es viņu pārkāpju. bez sirdsapziņas pārmetumiem.

Gravatar laacz

2004. gada 2. novembrī, plkst. 23:05

es: manuprāt es to esmu atvieglojis :)

anonīmi: dotajā gadījumā PHP metode ir stulba un nepārdomāta :)

Gravatar Delfins

2004. gada 3. novembrī, plkst. 09:28

lācz, ja parādas šitādi PS un PPS, tad labak to nelietot. un palikt pie vecām metodēm.

Gravatar laacz

2004. gada 3. novembrī, plkst. 09:30

Delfins: Tas nav tik viennozīmīgi.