Eli miten saa checkbox:iin valinnan päälle jos se on valittu.
Eli sivulla yksi.php valitaan esim.
Kyllä <0> Ei < > Lähetä
Tieto tallennetaan tietokantaan. Ollaan eri sivulla mutta päätetään mennä takaisin sivulle yksi, sivulla yksi valinta nappi kyllä pitäisi olla valittuna koska se on jo valittu kertaalleen. Eli vähän niinkuin editoitas jo annettuja tietoja.
Jotenki näin ajattelin mutta mikä onko ajatus lähelläkään: Valuessa varmaan pitäs olla jokin arvo kun se eka kerran valitaan ja tallenetaan tietokantaan, vai else jutulla antaa sit arvon??
Kiitos jo etukäteen.
Mod. lisäsi kooditagit.
value-attribuutilla ei valita sitä onko se valittu vai ei. Kun lisäät sinne "checked", niin se on valittu automaattisesti. Esim.
<input type="checkbox" checked />
Tuo esittämäsi tapa, jossa valitaan kyllä tai ei, on kyllä radio button.
<input type="radio" name="testi" selected /> Kyllä <input type="radio" name="testi" /> Ei
Checkbox on monivalinta, ja radiobutton ei.
Macro, olet hieman epälooginen: käytät tyhjän tagin sulkumerkintää (XHTML-tyyliä, HTML:ssä ei pakollinen) mutta kuitenkin jätät attribuutin arvon kirjoittamatta (HTML-tyyliä, XHTML:ssä virhe). Loogisempaa olisi minusta valita jompikumpi tapa kokonaan:
<input type="checkbox" checked="checked" /> <input type="checkbox" checked>
Jos vaihtoehdot ovat "kyllä" ja "ei", olisi monessa tilanteessa loogisempaa laittaa vain yksi checkbox, jonka valitseminen on "kyllä" ja tyhjäksi jättäminen "ei". Jos jostain syystä halutaan molemmat vaihtoehdot erikseen esiin, radio button on tosiaan parempi vaihtoehto. Macron esimerkkiin pitäisi lisätä vielä niille valuet (esim. 1 ja 0).
Juu tiedän että checkbox on monivalinnainen, ihan tarkoituksella.
No kyllä ja ei on vain esimerkki. kyselyssä voi olla esim..omistatko auton, kissan,koiran jne. jne...
millä saan sitten haettua tiedon tietokannasta. Eli jos on valittu "auto" niin valinta tulee siihen automaattisesti. Esim tietokannassa on taulukossa "auto" sinne on tallennettu valinta "on" tai "1" tai mitä tahansa. Lähinnä koodia tohon että kun palataan kyselyyn takas niin checkbox/radio valinta on jo valmiiksi valittu.
Haen tietokannasta testi ja taulukosta testi2, jossa rivi auto (arvo esim. 1)
Sitten haen tiedot tietokannasta ja kyselyssä auto <o> pitäisi olla valittuna jos arvo 1.
faaraot kirjoitti:
Haen tietokannasta testi ja taulukosta testi2, jossa rivi auto (arvo esim. 1)
Tarkoitat varmaan, että auto on kenttä eikä rivi? Jos auto olisi rivi, kentät kasvaisivat äänestäjien mukana rajatta ja se ei ole tietokantojen tarkoitus.
Yksinkertaisesti haet tietokannasta kentän "auto" arvon ja, jos se on 1 niin tulostat input:iin checked. Sinunhan täytyy tietokantaan tallentaessasi laittaa sinne myös jonkin tunnisteen, jolla osaat hakea käyttäjälle oikean rivin tietokannasta. Jos äänestäjät ovat sivustolle rekisteröityneitä käyttäjiä, niin heidät voi tunnistaa esim. id-numerosta. Alla olevassa esimerkissäni äänestänyt on sisäänkirjautuneena, jolloin hänen id-numeronsa löytyy muuttujasta id ja äänestyksen yhteydessä tämä id on laitettu tauluun testi2 kenttään id. Toinen vaihtoehto tunnistaa ei-rekisteröityneitä käyttäjiä voisi olla kirjata äänestäjän ip (tai vaikka istunto) ylös ja hakea sen mukaan. Haku voisi mennä kirjautuneilla jotenkin näin:
$kysely = $yhteys->prepare("SELECT auto, kissa, koira FROM testi2 WHERE id = ?"); $kysely->execute(array($id)); $tulos = $kysely->fetch(PDO::FETCH_ASSOC); $tulos['auto'] == 1 ? $checked = " checked=\"checked\"" : $checked = ""; print "<p>Omistatko auton: <input type=\"checked\"$checked /></p>\n"; $tulos['kissa'] == 1 ? $checked = " checked=\"checked\"" : $checked = ""; print "<p>Omistatko kissan: <input type=\"checked\"$checked /></p>\n"; $tulos['koira'] == 1 ? $checked = " checked=\"checked\"" : $checked = ""; print "<p>Omistatko koiran: <input type=\"checked\"$checked /></p>\n";
Aihe on jo aika vanha, joten et voi enää vastata siihen.