Millaisia kikkoja teillä on käytössä kun generoitte php:lla html:ää? Mielestäni tuo raakana html-tagien echottaminen on sangen ruman (ja sekavan) näköistä vähänkin isommissa projekteissa, myös erittäin vaikea jälkeenpäin muokata. Olen yrittänyt tehdä jonkinnäköisiä html-luokkia, mutta aina homma kaatuu siihen kun en ole tehnyt systeemistä tarpeeksi dynaamista.
Miten putkalaiset hoitaa tämän? Pistäkää vaikka esimerkkinä kooditagien sisään koodi, jolla generoitte kirjautumislomakkeen (tunnus, salasana, lähetä), joka on tablen sisällä (tasauksien takia).
<form action="toiminta.php" method="post"> <table> <tr> <td>Tunnus:</td> <td><input type="text" name="username" /></td> </tr> <tr> <td>Salasana:</td> <td><input type="password" name="password" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Kirjaudu!" /></td> </tr> </table> </form>
Itse teen tuolla sinun mainitsemallasi tavalla, eli echoan lomakkeen sivuille.
Projektista (ts. toteutustavasta) riippuen. Voidaan joko ajaa toiminnallinen koodi sivun alkuosassa ja viljellä niitä php-tageja lomakkeen eri kohtiin tarvittaessa (alla esimerkki), tai käyttää juurikin jotain valmista luokkaa (vaikkapa Putkastakin löytyvä CLomake), tai sitten frameworkkeja käytettäessä niissä on omat niksinsä, ZF:ssä riittää echo $this->form;
(kun lomake on luotu frameworkin toiminnoilla). Ei missään nimessä tulosteta koko lomaketta ja kilokaupalla tageja turhaan PHP:n läpi pitkin sivua, sellaisen ylläpito on verrattain raskasta.
Minä teen siten, että kirjoitan HTML:n suoraan sivulle, ja niihin kohtiin kun pitää laittaa PHP:llä jotain, laitan sen sinne erikseen.
Esimerkkinä näin.
<form action="toiminta.php" method="post"> <table> <tr> <td>Tunnus:</td> <td><input type="text" name="username" value="<?php echo $_SESSION["x"]; ?>" /></td> </tr> <tr> <td>Salasana:</td> <td><input type="password" name="password" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Kirjaudu!" /></td> </tr> </table> </form>
Clomakkeesta on tulossa uusi versio, jossa on vielä enemmän käyttöä helpottavia toimintoja. Esimerkkinä mainittakoon, että lomakkeen lähetyksen epäonnistuminen ei tuhoa valintoja, vaan kaikki täytetyt tiedot pysyvät. Lisäksi kankea taulukkotaitto siirtyi syrjään ja tilalle tuli css:n ominaisuuksia hyödyntävä asettelu.
Kehitteillä olevassa versiossa olisi tarkoitus saada lomake tomimaan myös ei DOM rajapintaa käyttäväillä sivuilla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.