Muuttuja

Onko mahdollista toteuttaa sellainen, että lomakkeella on useita luetteloruutuja (SELECT), joilla kaikilla on sama nimi, mutta eri sisältö. Kun lomake lähetetään PHP-koodille käsiteltäväksi, muuttujan arvoksi tulisi se luetteloista, joista on valittu jokin vaihtoehto (muista on valittu tyhjä). Tällainen olisi tarpeen, koska muuten luettelosta tulisi turhan pitkä (noin 300 nimikettä).
4213
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Miksi niillä pitää olla väkisin sama nimi? Se ei ole laisinkaan standardinmukaista.

Teet vain vähän monimutkaisemman käsittelijän X määrälle erinimisiä selectejä, jokaiselle select-arvolle defaultarvoksi tyhjä vaikkapa arvollla "0". Jos kyseisen selectin arvo on 0 niin hyppää vaan tutkimaan seuraavaa kunnes löytyy joku fiksu arvo.

Ongelmaksi tulee se että käyttäjä voi valita monta arvoa eri selecteistä eli sinun on tehtävä break kun löytyy järkevä arvo... Tätä voi hiukan estää javascriptaamalla muiden selectien arvot kun yhtä selectiä sorkitaan.

Toinen kikka olisi se että nimeät selectboxisi vaikka nimi_1, nimi_2, nimi_3 jne ja sitten parseroit ne erilliset boksit servervariablesta yhdeksi kokonaisuudeksi nimen alun perusteella. (skannaat nimen alun perusteella haluamasi selectit) - tällöin koodia ei tarvi muuttaa jos haluat lisätä tai vähentää selectien määrää myöhemmin. Hiukan elegantimpi systeemi.

Käyttöliittymäsuunnittelun mukaan sinun pitäisi laittaa tuota suurta listaa jotenkin joukotetuksi siten että listalta voi etsiä haluamaansa vaihtoehtoa vaikka ensimmäisen kirjaimen tai jonkun yhdistävän tekijän mukaan.

Äänestä
  • *Miksi niillä pitää olla väkisin sama nimi? Se ei ole laisinkaan standardinmukaista.*

    Oletko varma tuosta standarti jutusta?

    Sillä mielestäni on ihan standartin mukaista nimetä näin

    nimi[]
    nimi[] jne...

    Tuolloin esim PHP:ssä saa arvot nimi[0], nimi[1] jne..

    Äänestä

  • ---- kirjoitti:

    *Miksi niillä pitää olla väkisin sama nimi? Se ei ole laisinkaan standardinmukaista.*

    Oletko varma tuosta standarti jutusta?

    Sillä mielestäni on ihan standartin mukaista nimetä näin

    nimi[]
    nimi[] jne...

    Tuolloin esim PHP:ssä saa arvot nimi[0], nimi[1] jne..

    Lieköhän toimivan moinen temppu muillakin kuin checkbokseilla? Nimittäin selain ei välttämättä osaa välittää tietoa monesta samannimisestä komponentista.

    Jos toimii niin siitähän tulee hassu rakenne kun select antaakin lopputulokseksi arrayn jos on valittu monesta eri boksista. (tai sehän taitaa olla mahdollista muutenkin?) Voi tuota kokeilla ja jos se toimii niin hyvä.

    Äänestä

  • Kiitos neuvoista. Itse asiassa rupesin tänään itsekin ajattelemaan samaa ratkaisua, kuin tuo sinun ensimmäinen kertomasi ratkaisi. Rupesi jo hävettämään koko kysymys, jonka lähetin eilen illalla väsyneenä.

    Kuten varmaan huomaa, olen jokseenkin aloittelija tässä php:ssä ja yleensäkin koodaamisessa, mutta jostainhan se on alettava.

    Äänestä

Kommentoi aloitusta


G'Kar kirjoitti:

Onko mahdollista toteuttaa sellainen, että lomakkeella on useita luetteloruutuja (SELECT), joilla kaikilla on sama nimi, mutta eri sisältö. Kun lomake lähetetään PHP-koodille käsiteltäväksi, muuttujan arvoksi tulisi se luetteloista, joista on valittu jokin vaihtoehto (muista on valittu tyhjä). Tällainen olisi tarpeen, koska muuten luettelosta tulisi turhan pitkä (noin 300 nimikettä).

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu